How to Monitor IIS Performance

IIS is a web server for sharing information with the users on internet, intranet and extranet. So, ensuring its best performance and perfect response time is critical for the user experience. In this article, you will find all the ways, including HTTP ping checks and Performance Monitor software. Now, assuming you have windows web hosting set up with IIS, let’s dive in.

Perform HTTP Testing

By setting up a simple HTTP check that runs every minute, you can get a threshold, which you can use to determine whether the site is up or down. You will also be able to measure the response time. You can track 200 OK status. There is another advantage of setting up a simple HTTP check. It helps you to create a simple SLA monitor for monitoring your web application. You can perform HTTP testing using Retrace. It will provide you with the Response Time, Trend and Status, just like this way:

how to monitor iis performance

As you can see in Status, Retrace is notifying you about Response Time of 0.079s. You are also seeing a Result String of 1 match of “number_of_nodes”:19.Basically, it means that the number of nodes is not the one that we are expecting. In the third row, there is a notification about no 200 OK HTTP status. It indicates that the request hasn’t been succeeded.

Use Performance Monitor

Performance Monitor is an awesome tool, which comes with Windows. It provides you with real time graphics, which you can use to analyze the IIS performance. By using the software, you can get tons of information, including IO stats and network traffic. You can define alerts as well. You can get its access by clicking on Start and search for Performance Monitor. Then click on the result.

Use Task Manager

Task Manager is a great tool for getting all the insights related to IIS. You can monitor CPU and memory usage of inetinfo.exe and w3wp.exe to monitor the IIS services. It enables you to identify major problems, including memory leak that hampers the web server’s performance. All you have to do is activate several useful metrics to display, including Working Set Delta for memory. You can find the detailed way of using Task Manager to monitor right here.

Use Event Viewer

You can utilize Application Log of the Event Viewer to see the IIS events. In this way, you can have a detailed idea about the issue that you are facing. You have to check column “Source” to find if it contains NNTP Service (NNTPSVC) or WWW Service (W3SVC) keywords. They indicate problems related to IIS activities. You will also have to look for other keywords, including FTP Service (MSFTPSVC), SMTP Service (SMTP SVC), Active Server Pages, Microsoft Distributed Transaction Control (MSDTC) and Certificate Services related to SSL (CERTSVC).

Use Recommended Counter Monitors

If you use IIS, you get a massive advantage for getting the access to all of the metrics through Windows Performance Counters. There are tons of them. Here, you will find the most significant ones:

System/Process Counters

  • CPU%: You should check the overall server and CPU usage for your IIS Worker Process. You must ensure that the value never exceeds 80%, as it will result in a massive performance issue.
  • Memory: The currently used and available memory for the ISS Worker Process should be monitored. Make sure that 50% of the memory are available to keep the system healthy.

IIS Performance Counters

  • Web Service (Bytes Received/Sec and Bytes Sent/Sec): You should monitor bytes received and sent per second. It will help you to detect the possible web traffic spikes.
  • Web Service (Current Connections): There is no specific normal value for current connections. You have to specify it with respect to your experience using the apps.

ASP.NET Performance Counters

  • ASP.NET Applications (Requests/Sec and Requests in Application Queue): Requests dealt by both IIS and ASP.NET should be monitored. In case of Requests in Application Queue, make sure that the number is not high. It will enable the server to deal with the requests with a great pace.
  • .NET CLR Memory (% Time in GC): Ensure that your app spends less than 5% of its time in performing garbage collection. But if it’s not the case, you have to check the way of performing object allocations.

ASP.NET Error Rate Counters

  • .NET CLR Exceptions (# of Exceptions Thrown): You can use it to monitor all the thrown .NET exceptions. Even if they are thrown away, you will have no problem tracking them. Make sure that the number of exceptions is not high. It will help you to get rid of the performance issues, which are hard to identify.
  • ASP.NET Applications (Errors Unhandled During Execution/Sec): You should monitor the number of exceptions that haven’t been dealt with.
  • ASP.NET Applications (Errors Total/Sec): The number of compilation, pre-processing and execution errors should be tracked.


In this article, you have learned various ways of monitoring IIS performance. HTTP Testing is the simplest one among them.

But if you want real time information, use the Performance Monitor tool.

Check out these top 3 Windows hosting services:

Was this article helpful?