Thoughts from the EPS Windows Server Performance Team
Useful Microsoft Blogs
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.
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.
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…
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.
Senior Support Escalation Engineer
Microsoft Enterprise Platforms Support
Want to know more about Microsoft storage? Check out my blogs...
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.