PSPCommunity.org ورود | ثبت نام | كمك

رامین احمدی

SharePoint Development

بيشترين بازديد شده

افزایش سرعت و کارایی برنامه نویسی در شرپوینت ( بخش چهارم )
 

با سلام خدمت دوستان و همراهان عزیز و گرامی .

در ادامه مجموعه مقالات افزایش کارایی در شرپوینت امروز نکات دیگری را برای افزایش سرعت و کارایی در شرپوینت به شما دوستان عزیز ارائه خواهم کرد و امیدوارم از این مقاله نیز استفاده لازم را ببرید .

در مقاله امروز زیاد با برنامه نویسی کاری نداریم و نحوه بهینه سازی محتوای صفحات شرپوینت قبل از ارسال به مرورگر را بررسی خواهیم کرد( admin  های عزیز شرپوینت حتما این مقاله را بخوانند ! ) ، در بیشتر موارد این کار بین 50 تا 80 درصد کاهش ترافیک و تقریبا 30 درصد افزایش سرعت را در بر خواهد داشت !

به طور خلاصه برای اینکار شما احتیاج هست که دو مورد زیر را انجام دهید :

1 – فعال کردن Blob Caching

2 – فعال کردن فشرده سازی ( بیشتر برنامه نویسان دات نت خوب با این موضوع آشنایی دارند )

 

-  فعال کردن Blob Caching

Blob یا Binary Large Objects Cache  یکی از مهمترین امکانات برای کش کردن آبکجت هایی مثل تصاویر ، صداها و ویدئو ها می باشد که این اطلاعات را یکبار از دیتابیس فراخوانی کرده و بر روی سرور و یا کلاینت ذخیره میکند ، در واقع Blob Caching  توانایی انجام کارهای زیر را دارد :

1-  ذخیره آبجکت ها بر روی هارد دیسک سرور ( به منظور کاهش فراخوانی های دیتابیس )

2- کش کردن آیتم ها در کلاینت ( برای کاهش درخواست ها به سرور )

اما چطور میتونیم این امکان رو در شرپوینت فعال کنیم ؟

ابتدا یک کپی از فایل Web.config   سایت مورد نظر بگیرید و سپس آن را باز کنید و در قسمت configSections به دنبال <sectionGroup name="SharePoint"> بگردید ، و در این تگ و قبل از بسته شدن آن تگ زیر را وارد کنید ( البته اگر این تگ وجود داشت این مرحله را نادیده گرفته و به مرحله بعدی بروید ) :

<section name="BlobCache" type="System.Configuration.SingleTagSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ />

سپس به دنبال تگ BlobCache  بگردید ، BlobCach  به صورت پیش فرض غیرفعال می باشد و برای فعال کردن ان شما می بایست مقدار Enable  را به True  تغییر دهید :

<BlobCache location="C:\blobCache" path="\.(gif|jpg|png|css|js)$" maxSize="10" max-age="86400" enabled="true"/>

 

Location  محل ذخیره سازی فایل های کش شده می باشد .

Path  فیلتری است برای مشخص کردن فایل هایی که می خواهید کش شوند .

maxSize مقدار فضایی است که میخواهید برای کش کردن اطلاعات اختصاص دهید ( به گیگابایت ) .

Max-age  : ماکسیمم زمانی است که مرورگر کلاینت اطلاعات کش شده را دریافت میکند ( به ثانیه )

Enable  برای فعال و یا غیرفعال کردن این ویژگی به کار میرود .

- فعال کردن فشرده سازی

فشرده سازی یکی از امکانات بسیار خوب IIS  نسخه 6 می باشد که به صورت پیش فرض غیر فعال است .

با فعال کردن فشرده سازی IIS  فقط فایل های زیر را میتواند فشرده سازی کند :

- فایل های استاتیک مثل HTM ، CSS  ، txt

- فایل های داینامیک مثل asp ، dll  و یا exe

به خاطر داشته باشید که شرپوینت هم فایل های استاتیک و هم فایل های داینامیک را رندر میکند ، تقریبا تمام فایل هایی که از _Layouts  و _Vti_bin  رندر می شوند استاتیک هستند . تمام فایل هایی که در ریشه قرار دارند داینامیک هستند و با فعال کردن فشرده سازی ، این امکان برای فایل های استاتیک و داینامیک در شرپوینت فعال می شود .

قبل از اینکه این امکان را فعال کنیدحتما یک نسخه پشتیبان از سایت خود بگیرید ، Command Prompt  را باز کنید و به آدرس به systemdrive%\inetpub\AdminScripts تغییر دهید .

برای فایل های استاتیک دو دستور زیر را اجرا کنید :

  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions "css" "htc" "htm" "html" "js" "txt"
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "css" "htc" "htm" "html" "js" "txt"

و برای فایلهای داینامیک دستورات زیر را :

  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions "asp" "asmx" "aspx" "dll"
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions "asp" "asmx" "aspx" "dll"

در برخی موارد اضافه کردن فایل های dll  ممکن است کارایی شما را کاهش دهد ، برای درک بهتر مفهوم فشرده سازی و استفاده بهتر از آن پیشنهاد میکنم مقالات Analyzing the use of HTTP compression و Things to consider  را مطالعه کنید .

بعد از فعال کردن فشرده سازی میتوانید میزان فشرده سازی را با دستورات زیر تعیین کنید :

  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcDynamicCompressionLevel "9"
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcDynamicCompressionLevel "9"

مقدار فشرده سازی بین 0 تا 10 است ( به صورت پیش فرض 0 می باشد ) ، اگر میزان آنرا بر روی مقادیر کمتر تعیین کنید منابع پردازنده و حافظه کمتر اشغال می شوند و اگر بر روی مقادیر بالا تنظیم شود میزان استفاده از پردازنده و حافظه بیشتر میشوند و فایل های کوچک نیز فشرده میشوند در حالی که در مقادیر پایین تر بیشتر فایلهای بزرگ فشرده سازی میشوند .

و در آخرین مرحله می بایست دستور IISReset  را اجرا کنید .

اگر مشکلی با دریافت فایلهای Zip  در شرپوینت به وجود آمد میتوانید این راهنما را بخوانید .

- اصلاح MasterPage  و Page Layouts  

این کار کمی سخت تر و زمان گیر تر میباشد اما نتایج بسیار مثبتی دارد ، آیا تاکنون به وجود تعداد بسیار زیاد آیکون ها توجه کرده اید ؟ شما می بایست فایل های اضافی Layouts  را پاک کنید ، در گوگل به دنبال عباراتی مثل page speed و yslow بگردید و بینید در مقالاتی که مطرح شده چه کارهایی را انجام دادند ، به طور مثال کارهایی که میتوانید در طراحی مجدد صفحات انجام دهید شامل موارد زیر است :

- پاک کردن وب پارت های مخفی از صفحات ( بعضی از صفحات ممکن است بیش از 20 مگابایت اطلاعات را لود کنند ! و این ممکن است به شدت کارایی شرپوینت را کاهش دهد )

- حذف وب پارت مدیریت محتوا ( content editor webpart  ) – در این مقاله میتوانید دلیل آن را بخوانید .

- تعداد master Page  های سایت خود را به 1 کاهش دهید ( بله ، این نکته هم بسیار تاثیر گذار است ، مخصوصا در سایت های اینترنتی )

اما نتایجی که شما بعد از عملیات 1 و 2 ( به جز مورد آخر ) به دست می آورید شبیه این موارد خواهد بود :

 

Original

Optimised

Improvement

Request Count

32

5

84%

Bytes Sent

16,969

3,360

80%

Bytes Received

172,899

31,223

82%

Aggregate Session time

00:00:01:4420

00:00:00:9213

36%

 

منابع و مقالات مرتبط :

msdn.microsoft.com/en-us/library/ms533020(VS.85).aspx#Use_Cache-Control_Extensions

blog.thekid.me.uk/archive/2007/07/17/speed-up-your-sharepoint-site-using-cache-control.aspx

www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=63

msdn.microsoft.com/en-us/library/bb727371.aspx

http://weblogs.asp.net/hiransalvi/archive/2008/02/10/configuring-blob-caching-for-sharepoint-web-application.aspx

http://blogs.msdn.com/ecm/archive/2006/11/08/how-to-make-your-moss-2007-web-site-faster-with-caching.aspx

http://msdn.microsoft.com/en-us/library/aa604896.aspx

 

منتظر نظرات شما هستم .

موفق و پیروز باشید
Posted: Wednesday, May 19, 2010 11:26 AM توسط ramin

نظرات

Arash گفته:

ممنون از پست مفیدت رامین جان.

به موضوع بسیار مهمی اشاره کردی.مورد فشرده سازی رو من قبلا از مقاله Andrew Connell تست و اجرا کرده بودم که در افزایش سرعت موثر بود. مورد BLOB رو هنوز تست نکردم ولی فکر می کنم اونهم به همین اندازه تاثیر گذار باشه.

آرش

# June 4, 2010 10:11 PM
نظرات افراد ناشناس غير فعال مي باشد