Rainbow Portal

 

Windows 2003, IIS 6 Optimization for ASP.Net/Rainbow by Branimir Betov     1/7/2004

Here is the How-to in Microsoft Word Format (includes screenshots with the step-by step instructions)

How to improve a bit the rainbow performance when using Windows 2003 family servers and IIS

December 25, 2003 Branimir Betov (bobetov@comcast.net)

Revision 1

Summary

This article describes how to change some IIS 6 settings affecting the Rainbow Portal performance.

The problem

I have noticed that the first page is very slow (coming after about 10-15 seconds) if no users have connected to the portal for more than 20 minutes or so. Looking in the task manager revealed that during the first request to the portal the SQL server is taking ~100% CPU for about 5-6 seconds and then the w3wp.exe (the IIS worker process - aspnet_wp.exe in the previous windows versions) was taking another 5-6 seconds CPU time. Although only a 500 MHz PIII it should it is still slow…

The solution (partial)

A little investigation revealed that there are some settings that could be changed to improve the performance as follows:

  1. Go to the IIS Manager (StartàSettingsàControl PanelàAdministrative ToolsàInternet Information Services);
  2. Select the application pool the portal belongs to (in my case the default) and select properties:
  3. The first tab shown is the performance tab, in which I have left the default “Recycle worker process” time, although it might help if there were no users for 29 hrs…. J

  4. The more important setting is on the performance tab where the default idle timeout of the worker process is only 20 minutes (suspiciously close to the time after which the portal’s first page got slow). I have chosen to disable this option since there is no much traffic to the site. Here I have also increased the number of worker processes since I installed it on a dual CPU PC.

Conclusion and more settings to research

Although with the above-mentioned settings helped, it is still not a complete solution yet.

For a production web-site:

  1. It is recommended to tune the caching options in the web.config file.
  2. The SQL server connection timeout could be set, so the .NET pool will have open connection when it needs it instead of creating one, which is expensive. I don’t really know whether the .NET pool has a connection timeout, though.
  3. Make sure you disable Debug in the web.config.

Hopefully this helps…


<< Back      

powered by Rainbow with Rainbow.Zen