Information on IOSTAT metrics calculation using cdm probe

Document ID : KB000012431
Last Modified Date : 14/02/2018
Show Technical Document Details
Question:

How calculation of IOSTAT metrics is done using cdm probe  ?

Environment:
cdm LinuxSolarisAIX
Answer:

Below commands are used in different platforms for calculation of IOSTAT metrics

aix  "/usr/bin/iostat -d"

linux "iostat -d -x"

solaris"/usr/bin/iostat -x"

 

E.g In Linux , cdm probe gathers the data by creating the iostat command as below

 

linux.c:553: sprintf(cmd,"%s %d %d",IO_STAT_CMD, pIOStats->lSampleInterval, samples);

 

which would be come out to be something like below 

 

# iostat -d -x -k <Sample_interval> 2

 

Sample_interval is whatever configured in probe.

 

Eg: In case of customer interval is 1 minute , samples (sample_interval)  is 10 and samples will is always 2. (Hardcoded in code)

This command is run after each iostat interval configured in the probe (1 min for customer) and QOS/alarms are trigged based on the value at that moment i.e not according to average of samples

The sample_interval field signifies that the when above command is run 2 samples are collected for each iostat device and after parsing output of 2 samples of iostat device metrics value is calculated(which means after each 10 second one sample is collected and hence a total of  20 seconds would be taken to collect data from this command). 

 

Result of this command is like below

 

[root@BuildServer-CTeam cdm_5.72GA]# iostat -d -x -k 10 2

Linux 2.6.32-431.el6.x86_64 (BuildServer-CTeam)         12/20/2016      _x86_64_        (2 CPU)

 

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.21     1.10    0.33    0.71    10.00     7.25    33.15     0.01    5.08   3.69   0.38

dm-0              0.00     0.00    0.53    1.81     9.83     7.24    14.59     0.02    8.02   1.63   0.38

dm-1              0.00     0.00    0.01    0.00     0.03     0.00     8.00     0.00    3.16   2.02   0.00

 

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.00     1.20    0.00    0.30     0.00     6.00    40.00     0.00    0.33   0.33   0.01

dm-0              0.00     0.00    0.00    1.50     0.00     6.00     8.00     0.00    0.07   0.07   0.01

dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

 

As you can see in output 2 samples for metrics are fetched  for  each iostat device after a interval of 10 seconds. You can run this command on console and check, 

It will return after 20 seconds to fetch 2 samples.

 

Regarding the samples hardcoded as 2. The reason is that we take values of only the second sample as per the iostat command and ignore the first sample.

 

i.e if interval is configured as 1 min for iostat, we take only the second sample of this command(highlighted part below) for iostat metrics calculations and return QOS/alarms based on that at each iostat interval.

 

Linux 2.6.32-431.el6.x86_64 (BuildServer-CTeam)         12/20/2016      _x86_64_        (2 CPU)

 

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.21     1.10           0.33    0.71    10.00     7.25    33.15     0.01    5.08   3.69   0.38

dm-0              0.00     0.00          0.53    1.81     9.83     7.24    14.59     0.02    8.02   1.63   0.38

dm-1              0.00     0.00          0.01    0.00     0.03     0.00     8.00     0.00    3.16   2.02   0.00

 

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util

sda               0.00       1.20             0.00    0.30     0.00     6.00    40.00     0.00    0.33      0.33          0.01

dm-0              0.00     0.00             0.00    1.50     0.00     6.00     8.00     0.00    0.07        0.07          0.01

dm-1              0.00     0.00             0.00    0.00     0.00     0.00     0.00     0.00    0.00        0.00          0.00

 

Note:“samples” field is actually sample interval