Top 10 Ways to Pump Up IIS Performance
 

اگر شما دارای یک یا چند Website بر روی یک IIS می باشید برای افزایش دادن به سرعت کاری آن بهترین راه Cluster کردن آن می باشد اما این راه کمی پر خرج می باشد

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

If you host one or more Web sites that receive a lot of traffic, IIS performance is important to you. To enhance performance, you could always cluster your IIS servers or buy more bandwidth, but this tends to be a little expensive.

1.Enable HTTP Keep-Alives

یک راه برای بهینه کردن کار IIS شما فعال کردن این گزینه یعنی Http Keep-Alives می باشد که در IIS 6.0 بصورت Default فعال می باشد .

 
  • How to do it:  To enable the HTTP Keep-Alives option, open the IIS Manager and navigate through the console tree to Internet Information Services |<your server>| Web Sites | your Web site. Right-click on your Web site and select  the Properties command from the context menu .  When you do ,   you will see the site's Properties sheet see Figure 1.

The Enable HTTP Keep- Alives checkbox is located on the Web Site tab.

Figure 1:  Enable Keep-Alives

برای نمایش دادن یک Page موجود در یک Website  ممکن می باشد یک صفحه وب دارای چندین عکس  و نیز کد Html باشد یعنی هم عکس باشد هم HTML Document

در این حالت یک Client توسط Web Browser خود باید تمامی عکسها و کد Html را بر روی Cache خود Load کند از روی Web Server .

این امر نیازمند زمان می باشد . چون Web Browser یک Connection باید برقرار کند با Web Server اطلاعات را Download کند و سپس Connection را از بین ببرد .

در این میان زمانی که تعداد زیادی Client ارتباط برقرار کنند با یک IIS موجب می شود که IIS برای هر ارتباط یک Connection ایجاد کند اگز این گزینه فعال باشد

موجب می شود که سرور Connection را برای هر Client وقتی برای اولین بار ایجاد می کند نگهداری کند تا اگر File های بعدی نیز Download شد توسط Client از

طریق همان Connection باشد و با این کار Web Server دیگرنیاز ندارد که برای هر Download یک Connection جدید ایجاد کند .

2.Adjust Connection Timeouts

 در این قسمت شما می توانید مدت زمان برقراری یک Connection را برای یک IIS مشخص کنید مدت زمان خوب 120 می باشد.

این مقدار کمتر از مقدار مشخص شده در IIS های قبلی می باشد . IIS برای هر Connection مقدار 10kb از Memory را در نظر می گیرد .برای نگهداری

مشخصات و اطلاعات آن Connection.

پس نتیجه می گیریم که هرچه زمان این گزینه کمتر باشد مقدار Memory اشغال شده زود تر آزاد می شود .

و این مورد در زمانی که تعداد Connection ها بسیار زیاد باشند برای یک IIS بسیار مهم می باشد درنتیجه کم کردن زمان آن کمک می کند به آزاد شدن RAM سیستم.

دومین خاصیت آن این می باشد که مقدار کم مدت زمان Connection ها موجب می شود که زمانی که حمله DoS - Denial of Service رخ داد کارایی نداشته باشد یا حد اقل

آسیب را برساند .چون یکی از روش های این نوع حمله ایجاد Connection های بسیار زیاد می باشد با مدت زمان بالا و ....

3.Enable HTTP Compression

راه دیگر برای افزایش سرعت IIS استفاده از Compressing  برای فایل هایی می باشد که IIS به آنها سرویس دهی می کند .

این کار موجب می شود که Disk Space بیشتری را  صرفه جویی کنید و نیز موجب کم شدن استفاده از  Bandwidth  شبکه می شود و همچنین کم شدن زمان ردوبدل شدن اطلاعات.

و در نهایت موجب استفاده کمتر از CPU نیز می شود .

استفاده IIS  از Compression  برای تمامی فایلها یکسان نمی باشد برای مثال در WEB های که از Page های Static استفاده می شود این امر مفید می باشد و کمترین

فعالیت را برای IIS تولید می کند . در زمانی که یک IIS یک Request برای یک Static Page دریافت می کند آن را Compress می کند و به درخواست کنند ارسال می کند .

و در آخر آن Page را که Compress شده در Cache خود نگهداری می کند .زمانی که یک Request دیگر برای آن Page ارسال شود دیگر آن Page را دوباره Compress نمی کند بلکه از

طریق Cache آن را برای درخواست کننده بعدی ارسال می کند .

  • How to do it:  To enable HTTP compression, right-click on the Internet Information Services Manager's Web Sites container and select the Properties command from the resulting context menu. When the Web Sites Properties sheet appears, select the Service tab. You can compress static files by selecting the Compress static files checkbox (which enables compression on htm, html, and txt files by default). Likewise, you can compress dynamic pages by selecting the Compress application files checkbox shown in Figure 2 (which enables compression on .asp, .dll, and .exe files by default). You'll also see the option of changing the amount of space consumed by temporary files.

 

Figure 2:  Compress Application Files

اما Dynamic Page رانمی توان Cache کرد به همین دلیل باید IIS در هر زمانی که یک Request دریافت کرد آن را Compress کرده و ارسال کند این تفاوت

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

اگر شما از یک CPU باسرعت بالا استفاده می کنید اما از یک BandWidth کم و پایین برخوردار هستید این حالت کاملا برای استفاده از این گزینه مناسب می باشد .

 

شما می توانید همزمان هم Static Page و هم Dynamic Page  را Compress کنید .

برای این کار شما باید مکان Temporary File هر یک را جدا گانه مشخص کنید .

بصورت پیش فرض همیشه مکان این فایلها در windir\IIS Temporary Compressed Files folder می باشد .

و همیشه 95MB برای این قسمت درنظر گرفته شده و اطلاعات اگر بیشتر شود بر روی OldFiles نوشته می شود یا overwrite می شود .

 

شما  می توانید فایلهای با  Extensions مربوط به IIS مانند HTM , HTML , TXT و ... را نیز توسط  اجرای یک Script که در زیر مشخص شده  Compress کنید .

این کار را نیز برای Dynamic Page ها نیز می توان انجام داد .

You can modify the list of file extensions IIS will include in compression. To add one or more file types to the server-wide static compression configuration, open a command prompt and execute the following commands:

c:\inetpub\adminscripts>cscript adsutil.vbs 
SET W3SVC/Filters/Compression/Deflate/
HcFileExtensions "htm html txt newext" 

c:\inetpub\adminscripts>cscript adsutil.vbs 
SET W3SVC/Filters/Compression/gzip/HcFileExtensions 
"htm html txt newext"

"Newext" is the extension of the new file type you want to compress. You can add multiple file types separated by spaces.

To remove one or more file types from the server-wide static compression configuration, repeat the previous two commands, leaving out the file type you want to remove.

If you want to add one or more file types to the server-wide dynamic compression configuration, open a command prompt and type the two commands that are shown here:

c:\inetpub\adminscripts>cscript adsutil.vbs 
SET W3SVC/Filters/Compression/Deflate/
HcScriptFileExtensions "asp dll exe newext" 

c:\inetpub\adminscripts>cscript adsutil.vbs 
SET W3SVC/Filters/Compression/gzip/
HcScriptFileExtensions "asp dll exe newext"

Once again, "newext" is the extension of the new file type you want to compress. You can add multiple file types separated by spaces. You will have to restart IIS before compression will take effect.

4.Grow a Web Garden

روش دیگری برای بالا بردن سرعت کار و بهینه کردن کار IIS استفاد از این گزینه می باشد .اولین قسمت مدت زمانی می باشد که یک Connection می تواند بدون استفاده

فعال باشد برای افراد .

در مرحله بعد شما می توانید تعداد Worker Process را نیز مشخص کنید .تعداد نباید زیاد باشد البته بستگی به Application هایی دارد که با IIS کار می کنند.

  • How to do it:  You can set the number of worker processes by right-clicking on an application pool and selecting the Properties command from the resulting context menu. The Web garden setting is found on the resulting Properties sheet's Performance tab shown in Figure 3.

 

Figure 3:  AppPool Properties

5.Adjust the IIS Object Cache TTL

Cache موجود در IIS یک TTL دارد که معمولا بر روی 30 ثانیه می باشد و بعد از این مدت آن Cache از بین می رود .اما این مدت زمان همیشه مناسب نمی باشد .

برای مثال در Dynamic Page این زمان زیاد می باشد و باید ttl آن کوتاه نر باشد . در زمانی که سیستم شما دارای Memory کمی میباشد این کم کردن ttl نیز مناصب می باشد

برای آزاد کردن سریع تر Memory.اما زمانی که شما دارای فصای Memory بالا می باشید و نیز از Static Page  استفاده می کنید می توانید از TTL بالا استفاده کنید.

برای تغییر TTL شما باید از Registry استفاده کنید :

  • How to do it:  Open the Registry Editor and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters. Now, right-click on the Parameters subkey and select the New | DWORD Value commands from the resulting shortcut menus. In the New Value dialog box, enter ObjectCacheTTL. Now, right-click on the value that you just created and select the Modify command. Set the base to Decimal and then enter the new TTL time (in seconds) into the Value Data box. You can set the TTL between 0 (no caching) and 4,294,967,295 (the maximum possible time limit, which indicates unlimited caching).

6.Recycle

یکسری برنامه ها و Code هامی توانند موجب بشوند که Site شما و یا IIS شما دچار مشکل شوند و زمان و سرعت کار Site ویا IIS را بسیار کاهش دهدند این

مورد ممکن می باشد موجب شود که مردم فکر کنند که IIS شما دچار حمله شده و یا در تدارک حمله به سیستم آنها می باشد به دلیل کاهش سرعت جواب گویی و ..

یک راه برای جلوگیری از کاهش سرعت کار IIS استفاده از Recycle می باشد که در AppPool وجود دارد.

  • How to do it:  You can access the interface used to control recycling by right-clicking on the application pool that contains the leaky Web application, and selecting the properties command from the resulting shortcut menu. The recycling options exist on the Recycling tab of the AppPool's Properties sheet, as you see in Figure 4.

 

Figure 4:  Recycling Worker Processes

استفاده از Recycle برای  خالی کردن Memory پرشده بسیار مفید می باشد همچنین شما می توانید از schedule برای این کار استفاده کنید که زمان های متفاوت

این امر اجرا شود .بصورت پیش فرض هر 29 ساعت Recycle کار می کند شما می توانید این مدت زمان را کاهش دهید و موجب افزایش سرعت کار IIS شوید.

7.Limit Queue Length

زمانی که یک Request  به IIS  می رسد آن به یک صف اضافه می شود که صف Request ها می باشد .شما می توانید تعداد Request هایی که باید در داخل صف قرار بگیرند

را مشخص کنید . برای معرفی این تعداد همانند  Figure 3 شما می توانید  در قسمت Request Queue Limit  این تعداد را مشخص کنید .

با معرفی تعداد Request ها شما می توانید مطمئن شوید از اینکه درخواست افراد برای IIS در درون صف قرار گرفته تا در زمان متعارف به آنها جواب داده شود.

  • How to do it:  To change the request queue length, open the Internet Information Services Manager, right-click on the application pool that you want to adjust the queue length for, and select the Properties command from the resulting shortcut menu. When you do, you will see the AppPool's Properties sheet that you saw in Figure 3.

8.Shift Priority to the Working Set

شما می توانید در این قسمت به Windows فرمان بدهید که از Memory برای System Cache استفاده کند یا برای Program های  سیستم .حالت اول Default می باشد یعنی

System Cache شما برای اینکه از Memory برای IIS استفاده بیشتر شود می توانید این گزینه را تغییر دهید به Programs .

  • How to do it:  To shift the machine's priority to the working set, open the Control Panel and choose the System option. When the System Properties sheet appears, select the Advanced tab and then click the Settings button found in the Performance section. This will cause Windows to display the Performance Options Properties sheet. Select the Advanced tab and then select the Programs option in the Memory usage section, as shown in Figure 5.

Figure 5:  Performance Options

9.Add Memory

اضافه کردن RAM به سیستم نیز روش خوبی می باشد برای بالا بردن کار هر سرویسی مانند IIS و ...

The addition of physical memory is one of the best performance enhancements you can make. To optimize available memory, data is moved back and forth between RAM and disk-based virtual memory in a process known as paging. The more RAM the server machine has, the less paging will occur, and that's good because paging is extremely inefficient and causes the machine to run much slower than it would if everything could fit into RAM. A little paging is normal, even on machines with plenty of RAM, but excessive paging will kill a machine's performance. Not only does the machine have to stop and wait for the paging operation to complete, but the paging operation itself is processor intensive.

In addition to adding memory you can create page files on multiple hard disks. Windows requires your page file to be 1.5 times the size of your system's RAM. However, not all of that space has to exist within a single file. For example, if you have a server with four hard drives and 1GB of RAM, then placing a 384MB page file on each of the four drives would usually be more efficient than placing a 1.5GB page file on a single disk.

10.Use Disk Striping

روش آخر شاید ربطی به IIS نداشته باشد مستقیما اما استفاده از Volume های Dynamic با استفاده از تکنیک نرم افزاری و یا سخت افزای Striping کلا می تواند سرعت

کار Operation System شما را بالا ببرد.

Although disk striping isn't technically an IIS performance tweak, it can go a long way toward helping IIS to be more efficient. Disk striping spans files across multiple hard drives in an effort to achieve the combined performance of multiple drives. For example, if a volume is striped across five physical hard drives, then data can be read and written at approximately five times the speed that it could be if it existed on a single drive, because all five drives are being used simultaneously.

In the real world, you won't get five times the performance by using five drives, because you lose some performance to the overhead of managing multiple drives. Some stripe sets also sacrifice some speed and capacity in order to achieve a degree of fault tolerance.

While including disk striping in your IIS architecture and design can help you achieve performance gains, unfortunately the concept of disk striping and other advanced disk configurations is a bit more complex than I'm able to discuss here. For more information, see the "Using striped volumes" section in Help and Support Center for Windows Server 2003.

 
 

در زیر مشخصات نویسنده این مقاله را مشاهده می کنید .

Top 10 Ways to Pump Up IIS Performance

Brien M. Posey is a freelance technical writer who has written over 3,000 articles and written or contributed to 27 books over the last 10 years. Previously Brien served as CIO for a hospital chain. Reach Brien at www.brienposey.com
 

Last Updated: October 01, 2006

Winteacher.com
Top 10 Ways to Pump Up IIS Performance

 © 2003-2006 Winteacher.com . All rights reserved