Typically, if you’re running a Windows environment, chances are you’re using Microsoft IIS as your Web server to run your Web applications. To ensure IIS servers are up to speed and performing exactly how you want them to, you should consider monitoring key metrics. This will help track performance problems, so you can fix issues as they occur. When you have different Web applications for different user groups, you should monitor the performance of the Web server because a Web server issue can cause application downtime which can impact your business severely. To address this issue, it’s a good idea to tune your Web servers from time to time. By doing so, you can make sure the effects are showing positive growth in application performance and availability.
Like any other Web server in the network, IIS is prone to performance issues. Monitoring IIS server is useful for improving server performance, identifying performance bottlenecks, increasing throughput, and identifying connectivity issues. To successfully achieve optimum server performance, you should consider the following:
- Monitor critical performance metrics, such as CPU utilization, memory, and disk performance.
- Identify and kill rogue processes which are hogging resources causing a bottleneck to the IIS server.
- Test applications running on the Web server and look at the performance of Web pages. When you keep optimizing the Web pages and applications running on IIS servers, the overall Web server performance and user experience will automatically improve.
- Hardware issues usually lead to application failure and downtime. Monitoring server hardware will not only improve server performance, but will also ensure continuous application availability.
Ideally, your server management software should offer the following capabilities:
- Leverage out-of-the-box capabilities to monitor the health of IIS servers
- Obtain performance trends to optimize your Web server and Web application performance
- Achieve optimal performance of your Web transactions, monitor underlying hardware, Web server, website availability, Web transaction responsiveness, and other components
Additionally, a server management tool will give you all the information you need in the form of meaningful stats and interactive graphs. This is extremely helpful to track the performance of the IIS server over a period of time. You can also obtain valuable information like event logs, critical performance components, alerts, critical stats in the form of gauges, etc. For example, by looking at the URI cache hits percent counter, you can determine the ratio between URI cache hits to the total number of cache requests. Let’s say approximately one-fifth of requests to your sites are for cacheable content, then the value of this counter should be close to 20%. Another meaningful insight is by viewing the Web service counter which shows the current connections or the number of users trying to access the Web server and applications. This helps estimate whether your IIS server is capable of handling all incoming traffic.
There are several other performance counters you can monitor to look at IIS performance. Some of the major ones include:
- Web service counter: The components of this counter give you critical information regarding how many users are accessing the Web server and how much data is being sent and received.
- Bytes received/sec: Total number of bytes received by the Web service since the time the Web server started.
- Bytes sent/sec: The rate at which the data bytes have been sent by the Web service.
- Bytes total/sec: The total number of bytes sent and received per second by the Web service.
- Connection attempts/sec: The rate at which connection attempts are made to the Web server.
- Get requests: The total number of HTTP requests that have used the GET method since the Web service started.
- Web service cache counter: URI cache counters are part of the Web service cache counter and provide performance metrics to optimize Web servers, Web applications, and websites. The URI cache counters consist of cache performance counters that process information pertaining to data being requested from the Web server.
- URI cache flushes counter: Counts the number of URI cache flushes that have occurred since the server started. If a response is taking more time than what is specified in the threshold, or if the file was edited or modified then this counter will flush those files.
- URI cache hits counter: Counts the number of successful lookups in the URI cache since the server started. The value of this counter should increase constantly. If the displayed value is very low, then you could inspect why requests aren’t finding the cached response.
- URI cache hits percent counter: As previously stated, this counter calculates the ratio between URI cache hits to the total number of cache requests.
- URI cache misses counter: Counts the number of unsuccessful lookups in the URI cache. If the value count is high, and the value of the cache hits is low, you could inspect why the responses are not cached.
- Windows service monitors: All components that are part of the Windows service monitors use WMI or RPC communication to test if a specified Windows service is running, and reports the CPU, virtual memory, and physical memory used by the service.
- HTTP SSL service
- IIS admin service
- Network news transfer protocol service
- WWW publishing service
- ASP.NET state service
To ensure optimum IIS performance, IT admins should monitor these key metrics and counters to be aware of performance and availability of the IIS servers and Web applications.
Finally, if there’s an issue in the Web server, a proactive alerting mechanism can be very helpful. For example, you can configure alerts and get notified when a performance counter is about to reach the threshold limit. This way, you can diagnose the issue ahead of your end-users and fix the issue before it’s too late.