Performance Counters:

Performance counters are used to monitor system components such as processors, memory, network and the I/O devices. Performance counters are organized and grouped into performance counter categories. For instance the processor category contains all counters related to the operation of the processor such as the processor time, idle time, interrupt time and henceforth.  If performance counters are used in the application, they can publish performance-related data to compare them against acceptable criteria.

The number of counter parameters to be considered by the load tester/designers greatly varies based on the type and size of the application to be tested. Some of the Performance Counters and their Threshold values for Performance Analysis are as follows:

Memory Counters:

Memory: Available MbytesThis describes the amount of physical RAM available to processes running on the system.

Threshold to watch for:

Available Mbytes consistent value of less than 20 to 25 percent of installed RAM is an indication of insufficient memory. Values below 100 MB may indicate memory pressure.

Note: This counter displays the last observed value only. It is not an average.

Memory – Pages /secIndicates the rate at which pages are read from or written to disk to resolve hard page faults.

Threshold to watch for:

Memory-Pages /sec higher than 5 indicates a possible bottleneck

Process: Private Bytes: _Total Indicates the current allocation of memory that cannot be shared with other processes. This counter can be used to identify memory leaks in.NET applications

Process: Working Set: _Total This is the amount of physical memory being used by all processes combined. If the value for this counter is significantly below the value for Process: Private Bytes: _Total, it indicates that processes are paging too heavily. A difference of more than 10% is probably significant.

Processor Counters:

% Processor Time_Total Instance – Percentage of elapsed time a CPU is busy executing a non idle thread (An indicator or processor activity).

Threshold to watch for:

Processor % Time of sustained at or over 85% may indicate that processor performance (for that load) is the limiting factor.

% Privilege TimePercent of threads running in privileged mode (file or network I/O, or allocate memory)

Threshold to watch for:

Processor % Privilege Time consistently over 75 percent indicates a bottleneck.

Processor Queue Length – Number of tasks ready to run than the processors can get to.

Threshold to watch for:

Processor Queue Length greater than 2 indicates a bottleneck.

Note: High values many not necessarily be bad for % Processor Time. However, if the other processor-related counters are increasing linearly such as % Privileged Time or Processor Queue Length, high CPU utilization may be worth investigating.

  • Less than 60% consumed = Healthy
  • 51% – 90% consumed = Monitor or Caution
  • 91% – 100% consumed = Critical or Out of Spec

System\Context Switches /sec. Occurs when higher priority threads preempts lower priority threads that are currently running, and can indicate when too many threads are competing for processor time. If much processor utilization is not seen and very low levels of context switching are seen, it could indicate that threads are blocked

Threshold to watch for:

As a general rule, context switching rates of less than 5,000 per second per processor are not worth worrying about. If context switching rates exceed 15,000 per second per processor, then there is a constraint.

Disk Counters:

Physical Disk (instance)\Disk Transfers/sec

To monitor disk activity, we can use this counter. When the measurement goes above 25 disk I/O’s per second then we got poor response time for the disk (which may well translate to a potential bottleneck. To further uncover the root cause we use the next mentioned counter.

Physical Disk (instance)\% Idle Time

This counter measures the percent time that the hard disk is idle during the measurement interval, and if we see this counter falling below 20% then we will likely get read/write requests queuing up for the disk which is unable to service these requests in a timely fashion. In this case it’s time to upgrade the hardware to use faster disks or scale out the application to better handle the load.

Avg. Disk sec/Transfer The number of seconds it takes to complete one disk I/O.

Avg. Disk sec/Read – The average time, in seconds, of a read of data from the disk.

Avg. Disk sec/Write The average time, in seconds, of a write of data to the disk.

Less than 10 ms very good
Between 10 – 20 ms okay
Between 20 – 50 ms slow, needs attention
Greater than 50 ms serious I/O bottleneck

Note:  These three counters in the above list should consistently have values of approximately .020 (20 ms) or lower and should never exceed.050 (50 ms).

Source: Microsoft

Network Counters:

Network Interface: Output Queue Length – This is the number of packets in queue waiting to be sent. A bottleneck needs to be resolved if there is a sustained average of more than two packets in a queue.

Threshold to watch for:

If greater than 3 for 15 minutes or more, NIC (Network Interface Card) is bottleneck.

Network Segment: %Network Utilization – % of network bandwidth in use on this segment.

Threshold to watch for:

For Ethernet networks, if value is consistently about 50%-70%, this segment is becoming a bottleneck.

Conclusion : These values may not exactly depict the threshold limits but provides a consideration to be valued upon for Performance Analysis.

Posted by Raghunandhana Rao Gundabathina
Comments (0)
March 7th, 2012

Comments (0)