IIS probe - Monitoring, reporting and performance counters

book

Article ID: 195560

calendar_today

Updated On:

Products

NIMSOFT PROBES DX Infrastructure Management CA Unified Infrastructure Management for z Systems CA Unified Infrastructure Management On-Premise (Nimsoft / UIM) CA Unified Infrastructure Management SaaS (Nimsoft / UIM)

Issue/Introduction

We have been requested to perform reports for the following items:

- Average time in an IIS queue, request wait times
- IIS queue length

I have been reviewing the IIS probe release notes and deployed it in our test environment. I have also referred to below document, and have found that the only setting that contemplates the queues, and their response time, are for example the "ASP.NET\Requests Queued" or the "Request Wait Time". Anyway, those are found within ASP settings, and not IIS, by navigating through the Admin Console IIS Probe configuration.

https://docplayer.net/4954732-Ca-nimsoft-monitor-probe-guide-for-iis-server-monitoring-iis-v1-5-series.html

I would appreciate any kind of guidance to work through the probe to have those specific items covered.

Cause

- IIS monitoring

Environment

Release : 9.0.2

Component : UIM - IIS

Resolution

All of the IIS metrics are listed here. Besides IIS metrics, Windows performance counters can be added via the User Objects feature in the IIS probe.

https://techdocs.broadcom.com/content/broadcom/techdocs/us/en/ca-enterprise-software/it-operations-management/ca-unified-infrastructure-management-probes/GA/alphabetical-probe-articles/iis-iis-server-monitoring/iis-metrics.html

If what you need is:

- Average time in an IIS queue, request wait times
- IIS queue length

You may have to activate the ASP counters.

http://www.iis.net/ConfigReference/system.webServer/isapiFilters

and if its not an exact match with what is already monitored as per the out of the box IIS metrics, you can specify user objects.

Configure User Specified Objects
The probe includes a set of predefined monitors available on all hosts running the IIS server. The predefined monitors measure the performance of real-time objects on the IIS server. If the predefined objects do not meet your requirements, you can also define objects that help you monitor the IIS server.

Follow these steps:

Show User Specified Objects from the toolbar to display all user specified objects in the right pane.
Right-click in the right pane and select New.
Set or modify the following fields in the User Object dialog:
 
Login Profile: allows you to select the host profile for which you want to define the user object.
 
Object Name: allows you to select the name of the new object.
 
Counter Name: specifies the counter name. For example, select 
Disk Transfers/sec if the selected object is LogicalDisk.
 
Instance Name: specifies the instance name. For example, select disk drive D: if the selected object and counter name are LogicalDisk and Disk Transfers/sec, respectively.
 
Description: specifies additional information about the object.
 
Make Available As QoS: enables you to make the measured value available as QoS, when selected.
 
Unit: specifies the unit of the QoS value, such as Mbytes and %. 
 
Click OK.
Click Apply.
 
The new object is added to the user-defined objects list under the User Objects node of the selected host.
 
For installation instructions to be able to gather all possible metrics check here:
 
https://techdocs.broadcom.com/content/broadcom/techdocs/us/en/ca-enterprise-software/it-operations-management/ca-unified-infrastructure-management-probes/GA/alphabetical-probe-articles/iis-iis-server-monitoring/iis-iis-server-monitoring-release-notes.html#concept.dita_3cb726de405ababfe3eaa95a2a4cd3bf1c1dc3fb_InstallationNotes
 
Note: Make sure you check out the iis ReadMe file in the IIS probe directory.

For queue length,

"HTTP Service Request queue" and then select the Application pool you like to monitor.

For Request wait time: (via ASP)

For information about how to monitor request processing time see http://msdn.microsoft.com/en-us/library/ms972959.aspx. There is a lot information in that article, but in particular you are probably interested in the ASP.NET\Request Wait Time counter.


IIS Performance Counters

The latest version of IIS is 10 – this is the version used in Windows 10 and Windows Server 2016.

General counters: measure the performance of the server hosting the IIS, such as processor, memory, disk, and network utilization.
Web applications running on IIS: e.g., ASP.NET, .NET CLR, and Web Service counters.

General Counters 

Processor\% Processor Time – refers to the average percentage of processor time occupied. It is a main indicator to consider when deciding whether the CPU power of the IIS server is enough. It is recommended for this counter to remain below 85% for the system to be considered healthy.

System\Processor Queue Length – the processor queue is being filled up with threads when the server’s processors are busy servicing other threads at the moment. If this counter is usually above 2 and the % Processor Time remains on high levels, then the processors are considered a bottleneck in the system.

Memory\Available Mbytes – refers to the amount of physical memory (measured in MBytes) on the system that can be used by new processes. If the free memory is equal or greater than 50%, the system is considered healthy. A value of 25% free memory indicates a potential problem. If the memory is below 10%, the condition has to be examined carefully and precautions have to be taken. If the free memory is less than 5%, the performance of the system is negatively impacted.

Memory\Pages/sec – refers to the amount of read and write requests from memory to disk. If this value remains high and the Available Mbytes are less than 10%, then the Memory subsystem is considered a bottleneck. Less than 500 Pages/sec are considered normal, more than 500 may affect system’s performance.

PhysicalDisk\% Disk Time – refers to the percentage of time the disk was occupied. It takes into account both read and write requests sent to the disk.

Network Interface\Bytes Total/sec – refers to the total amount of bytes – both sent and received – over the network. If the value of this counter is usually greater than 80%, then maybe another or faster network card should be installed on the server.
 

IIS role-specific counters 

ASP.NET Applications\Requests/Sec – shows the throughput of the ASP.NET application on the server. It is monitored along with other counters to determine whether the server is handling the application as it’s supposed to.

ASP.NET\Application Restarts – indicates the number of restarts of the application in the server’s uptime. A high value of this indicator should be monitored. The general counters can help you identify whether it is caused by a bottleneck in the system or by the application itself.

ASP.NET\Request Wait Time – shows the amount of time (in milliseconds) that the last request was held in the queue.It should be close to 0 ms. If this indicator is usually greater than 1000 ms, the performance of the IIS server is suffering.

ASP.NET\Requests Queued –  the queue fills up with requests that wait to be processed. This counter should be monitored to find out when an application is overwhelmed. Then, an analysis of the application and server performance altogether can help the administrator identify the cause for the filled queue.

.NET CLR Exceptions\# of Exceps Thrown / sec – shows the number of exceptions per second that the application is throwing. Exceptions should be rare, because each exception takes a lot of system resources. That’s why this counter should be carefully monitored, especially if it is greater than 5% of the counter ASP.NET Applications\Requests/Sec or 100 exceptions/sec for example.

.NET CLR Memory\# Total Committed Bytes – shows the amount of virtual memory reserved for the application on the paging file. It should be monitored along with the general counters to identify issues with the performance of the IIS. Problems can be caused by a small amount of memory installed or by an application overusing the memory.

Web Service\Get Requests/sec – measures the amount of GET requests processed in a second. If the value is too high for a particular IIS server, then load balancing or clustering technologies can be applied to lower the burden of the server in question.

Web Service\Post Requests/sec – measures the amount of POST requests processed in a second. Again, if the value is too high for a particular IIS server, then load balancing or clustering technologies can be applied to lower the burden of the server in question.

Web Service\Current Connections – shows the number of active connections with the Web Service. Like with the other web service counters, if the value of this counter is usually too big for the server (the actual number depends on the specific hardware and software installed), then load balancing solutions can be implemented.

 

Some additional information on performance counters from Microsoft can be found here: https://technet.microsoft.com/en-us/library/bb687493.aspx

Additional Information

User Specified Objects - requirements for Microsoft Windows performance data collection

Configure the username and password for Windows Authentication using the local admin account or a domain admin.

 

perfmon probe config:

Configure the user, domain and password.

User Objects will then show data values and you can configure QOS and alarms for ANY performance counter/instance for IIS.

IIS website status/server state

Options:

net_connect
Options: Use the net_connect probe and monitor the IIS Service @port.

You can test the HTTP protocol/[email protected] and even send a specific command to check the response, e.g., a 200 (GOOD/OK) response from the web server/site, e.g.,

ntperf
Or you can use ntperf, a local probe and monitor IIS perfmon counters, e.g,

https://techcommunity.microsoft.com/t5/iis-support-blog/performance-counters-for-monitoring-iis/ba-p/683389

Alternatives for IIS monitoring:

https://stackify.com/asp-net-performance-counters/

url_response

Another option would be to monitor the website(s) remotely via url_response.

If you just want to monitor like any other website you could use the url_response probe.

https://techdocs.broadcom.com/us/en/ca-enterprise-software/it-operations-management/ca-unified-infrastructure-management-probes/GA/alphabetical-probe-articles/url-response-url-endpoint-response-monitoring.html

Attachments