clocktickInterval interpretation with EMC VNX/VNXe arrays

68 views
Skip to first unread message

Jeffery K.

unread,
Jun 10, 2016, 6:32:54 PM6/10/16
to SMI-S Developers Group
So, I was trying to create a few formula's based on some examples in the Block Devices (part 3) 1.4r6 book.  (page 199 Table 81)
Here's an excerpt for convenience:
------------------------------------------------
Calculated Statistics                  New statistic Formula
% utilization =  100 * (delta StatisticTime - delta IdleTime)/ delta StatisticTime
I/O rate = delta TotalIOs / delta StatisticTime
I/O response time =  delta IOTime / delta TotalIOs
Queue depth  = delta I/O rate * delta I/O response time
Service Time =  utilization / I/O rate
Wait Time = Response Time - Service Time
Average Read Size  = delta KBytesRead / delta ReadIOs
Average Write Size  = delta KBytesWritten / delta WriteIOs
% Read  = 100 * (delta ReadIOs / delta TotalIOs)
% Write = 100 * (delta WriteIOs / delta TotalIOs)
% Hit = 100 * ((delta ReadHitIOs + delta WriteHitIOs) / delta TotalIOs)
-------------------------------------------------

Specifically, As I starting trying to compute these, I realized I needed to put the unit in the same measurement of time (for the ones that used Statistics time) EMC collects every 5 minutes (at it's most granular) I know it can be configured for something else.

So, if we take "I/O response time" as an example  (on the disk group) , for a point in time, i'm getting a delta value for IOTime of 3,710,172, which per the spec is in units of "ClockTickIntervals" I spent a while searching on this, and found that it's defined as "microseconds" 10 ^ -6, 1/1000000 
So, let's do the math. 
I/O response time =  delta IOTime / delta TotalIOs
3,710,172/289.8 = 12802.53 clockticks (aka microseconds)
and if we divide by 1000, we get 12.802 (milliseconds) 
This all makes sense. my disk had an average response time of 12 milliseconds. Great. 

I then tried to apply the same formula to the "Front End Computer system) ElementType = 3, which I think is the clarion service processors, right? Anyways...

Here's the math:
I/O response time =  delta IOTime / delta TotalIOs
21/129.9 = 0.162 in units of "clockTicks" Now obviously, this would mean my average response time is less than 1 microsecond. But i don't think that's the case. 

So, I searched more, and found the BlockStatisticsCapabilities class has a ClockTickInterval property in the documentation. When I get that instance out, I got the following:
Built with EMC SMI-S Provider: V4.6.2
Namespace: root/emc
repeat count: 1
(localhost:5988) ? gi
ObjectPath: Clar_BlockStatisticsCapabilities.InstanceID="CLARiiON+APM00154410677"
LocalOnly [false]:
IncludeQualifiers [false]:
Property to include ('-' for all, '[empty]' for no properties)? [-]:
++++ Testing GetInstance: Clar_BlockStatisticsCapabilities.InstanceID="CLARiiON+APM00154410677" ++++

<INSTANCE CLASSNAME="Clar_BlockStatisticsCapabilities" >
<PROPERTY NAME="InstanceID"  TYPE="string">
<VALUE>CLARiiON+APM00154410677</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="AsynchronousMethodsSupported"  TYPE="uint16">
<VALUE.ARRAY>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY NAME="ClockTickInterval"  TYPE="uint64">
<VALUE>10</VALUE>
</PROPERTY>
<PROPERTY NAME="ElementName"  TYPE="string">
<VALUE>Capabilities for block statistics service</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="ElementTypesSupported"  TYPE="uint16">
<VALUE.ARRAY>
<VALUE>2</VALUE>
<VALUE>10</VALUE>
<VALUE>3</VALUE>
<VALUE>6</VALUE>
<VALUE>32768</VALUE>
<VALUE>8</VALUE>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY NAME="EMCArrayID"  TYPE="string">
<VALUE>CLARiiON Array APM00154410677</VALUE>
</PROPERTY>
<PROPERTY NAME="EMCDevClockTickInterval"  TYPE="uint64">
<VALUE>10</VALUE>
</PROPERTY>
<PROPERTY NAME="EMCDiskClockTickInterval"  TYPE="uint64">
<VALUE>1</VALUE>
</PROPERTY>
<PROPERTY NAME="EMCSpClockTickInterval"  TYPE="uint64">
<VALUE>100000</VALUE>
</PROPERTY>
<PROPERTY.ARRAY NAME="RateElementTypesSupported"  TYPE="uint16">
<VALUE.ARRAY>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY.ARRAY NAME="SupportedFeatures"  TYPE="uint16">
<VALUE.ARRAY>
<VALUE>3</VALUE>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
<PROPERTY.ARRAY NAME="SynchronousMethodsSupported"  TYPE="uint16">
<VALUE.ARRAY>
<VALUE>4</VALUE>
<VALUE>5</VALUE>
<VALUE>6</VALUE>
<VALUE>7</VALUE>
<VALUE>8</VALUE>
</VALUE.ARRAY>
</PROPERTY.ARRAY>
</INSTANCE>

So, Looking at this, I guess that means because EMCDiskClockTickInterval = 1, the unit is in microseconds, which is why the math makes sense. 
So, for EMCSpClockTickInterval = 100000, does that mean that my SP (Service Processor) items are in tenth's of a second unit?

So, 21/129.9 = 0.162 (tenth's of a second. ) which would be 0.0162 second, or 16.2 milliseconds. I guess that makes sense. 
Anyone have any thoughts, or can confirm this is the right way to do this?

And for anything that's not a Disk, Dev or SP,(the customized EMC values) the value (factor away from microseconds) of ClockTickInterval = 10?

clocktick.png
Reply all
Reply to author
Forward
0 new messages