Improve your web application performance with IIS 7
This resource is all about improving performance of web application with a bit settings in IIS 7, In this article i explained how to improve performance using IIS 7 basic settings
History
A couple of year ago when i asked my organization to migrate the IIS from version 6 to 7 then many people raise hand with a question, "Does it improves website performance ? What are its Advantages" Yes, now a day's 'performance' is the general point of discussion everywhere. The more your website faster, the more your website popular too. People like to search with Google, Bing as they are faster, they produce results in just fractions of second.Introduction
IIS 7 is the next version of Internet Information Services version 6, it is the web server with security, easy deployment methods, authentication and authorization like good specifications.
But we are not aware with full specification and features of IIS, Internet Information Services (IIS) exposes numerous configuration parameters that affect IIS performance.
Following steps will drive you to the IIS performance steps and surely it will increase your web application/website performance.IIS logging : How much you need this ?
The first thing that affects IIS performance is its Logging facility. Now the question is "How much you need this really?". IIS logging should be minimized or even disabled in a production environment.
you can disable IIS logging with the help of following steps
1. Open Internet Information Services (IIS) Manager. (Using Start-> Run-> type 'INETMGR')
2. In the Connections pane-> click to expand Sites-> click to select the Web site for which you would like to disable logging-> click to select Features View-> double-click the Logging feature.
3. Click Disable in the Actions pane to disable logging for this Web site.
see below snap to know, how to set logging 'disable'
---------------------------------------------Disable IIS ASP debugging
There is some functionality of IIS that are used when we worked on development environment but in production environment it should be disable, like IS ASP debugging facility not really needed on production environment and it has to be disable there.
see below steps to make it disable
1. Open IIS
2. In the Connections pane-> click to expand Sites-> click to select the web site for which you would like to disable ASP debugging-> click to select Features View, and then double-click the ASP feature.
3. Select Compilation-> click to expand Debugging Properties-> Verify that both Enable Client-side Debugging and Enable Server-side Debugging are set to False.
see below snap to know, how to set it to 'false'
Or another way is to using web.config, you need to put following tag to web.config to make it disabled
---------------------------------------------Adjust Number of ASP Threads Per Processor
IIS has the threads per processor limit property which defines the maximum number of ASP requests that can execute simultaneously. You should tune/adjust the number of threads that will consume 50% of processor time not more than that. The no of worker threads significantly affects IIS performance. You may increase the value of Threads Per Processor Limit. Doing so allows the server to create more threads to handle more concurrent requests. The default value of Threads Per Processor Limit is 25. The maximum recommended value for this property is 100.
if you have more concurrent user for your website then you can increase this property count
To set threads per processor limit use below steps
1. Open IIS
2. Select the website for which we want to set 'no of worker threads' property-> in Features View select ASP-> double-click the ASP feature.
3. Click to expand Limits Properties under Behavior-> click Threads Per Processor Limit-> enter the desired value for Threads Per Processor Limit and click Apply in the Actions pane.
see below snap for more detail
---------------------------------------------Adjust ASP Queue Length property
By setting this property to a specific point we can get good response time while minimizing HTTP 503 (Server Too Busy) error. This error mostly occurs when ASP request queue is full. If the value of ASP Queue Length property is too low; the server will send the HTTP 503 error frequently. If the value of ASP Queue Length property is too high, users might get the server is not responding error When in fact their request is waiting in the queue. The best practice to set this property is 1:1 with number of threads For example, if the ASP Threads Per Processor Limit property is set to 25 with
a single processor, then set the ASP Queue Length property to 25.
1. Open IIS
2. Open ASP feature, in features view.
3. Click to expand Limits Properties under Behavior-> click Queue Length-> enter the desired value for Queue Length and then click Apply in the Actions pane.
see below snap for more detail
---------------------------------------------Enable IIS HTTP compression
By enabling HTTP compression we can achieve faster transmission time between compression-enabled browsers and IIS, regardless of whether your content is served from local storage or a UNC Resource. To enable HTTP compression follows below steps
1. Open IIS
2. Click on compression features to open it, for particular website
3. Enable dynamic and static compression
see below snap for more detail
---------------------------------------------Enable output caching
Caching is the feature which helps to improve the speed of the IIS by taking copy of a webpage visited by most recent user. If a new user requests the very same webpage located in the cache, IIS will send the copy from its cache without reprocessing the contents. Output caching can significantly improve your server response time for dynamic contents
see below snap for more detail
---------------------------------------------
These are the small settings that we can apply on your website, but these are only IIS level settings, there are many other factor too that ate affect application performance including Database scripts, code logic, Firewall, Operating system settings, Hardware specification and many more
Suggestions are most welcome.
Thanks
koolprasad2003