Performance counter for iSCSI

Performance counter for iSCSI

  • Comments 2
  • Likes

I know most of my blogs are kind of long but when I came across this information I felt a need to do a quick entry about it as the information is really hard to find.

A customer recently asked me about one of our iSCSI performance counters. It was the Average Request Processing Time for the iSCSI Request Processing Time object. He wanted to know what this counter does.

image

The first problem I ran into was finding the counter on any of my computers. It turns out that the iSCSI Request Processing Time object is only exposed in Performance Monitor when there is an active iSCSI connection. All my sessions were inactive at the time, so I didn’t see it.

The reason for this is that when we establish a session with an iSCSI target we query to find out how many commands the device can hold.  This is used in the calculation below. Without an active session, we couldn’t do the calculation and therefore wouldn’t be able to display the object.

Average Request Processing Time:

When we send the device a request, we start a timer. Then when the request completes we stop the timer.  The time it took to complete is the Request Time.  We add the Request Time to the Cumulative Time, and divide by the number of requests that were added into the Cumulative Time.  That gives us the average.  When the Cumulative Time holds the Request Times equal to 5 times the number of requests that the device can hold, then we reset the Cumulative Time…starting over again.  The maximum for this counter is the largest calculated value.

Example:

Assume that the device can handle 2 requests (using a low number to keep things simple). We would process 10 requests (5x2)…

Request1: Completes in 30ms

Request2: Completes in 25ms

Request3: Completes in 10ms

Request4: Completes in 15ms

Request5: Completes in 100ms

Request6: Completes in 14ms

Request7: Completes in 25ms

Request8: Completes in 20ms

Request9: Completes in 26ms

Request10: Completes in 36ms

So if we average that out…

30ms

25ms

10ms

15ms

100ms

14ms

25ms

20ms

26ms

+ 36ms

=======

301ms/10 = 30.1ms

So the counter would read 30.1ms for that time.

This counter would be handy if you were troubleshooting a disk performance issue and wanted to get information on how quickly iSCSI requests were being handled. This would be similar to using logical and physical disk counters. However this data would come from much lower in the storage stack.

Robert Mitchell

Senior Support Escalation Engineer

Microsoft Enterprise Platforms Support

Want to know more about Microsoft storage?  Check out my blogs...

http://blogs.technet.com/askcore/archive/2010/02/18/understanding-the-2-tb-limit-in-windows-storage.aspx

http://blogs.technet.com/askcore/archive/2009/10/16/the-four-stages-of-ntfs-file-growth.aspx

http://blogs.technet.com/askcore/archive/2009/12/30/ntfs-metafiles.aspx

http://blogs.technet.com/b/askcore/archive/2010/08/25/ntfs-file-attributes.aspx

http://blogs.technet.com/b/askcore/archive/2010/10/08/gpt-in-windows.aspx

Share this post :


Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Are the units shown in perfmon in ms? Seconds? It doesn't seem to be specified anywhere.  It would be nice if it were included at least in the description.  

  • When you say we send the device a request, we start a timer.

    What is being reffered to request here is it like trying to copy /paste or open any application and then comparing.