The following is net-snmp output and as you see, diskIOLA is not availabe:

SNMP table: UCD-DISKIO-MIB::diskIOTable

diskIOIndex diskIODevice diskIONRead diskIONWritten diskIOReads diskIOWrites diskIOLA1 diskIOLA5 diskIOLA15 diskIONReadX diskIONWrittenX

      25          sda   845276160     2882477056      576632     42597061         ?         ?          ?   5140243456    883350772736

According to the definitions here http://www.net-snmp.org/docs/mibs/ucdDiskIOMIB.html:

diskIOLAx means the x minute average load of disk (%).

The other values in the table are:

  • diskIONRead - The number of bytes read from this device since boot.
  • diskIONWritten - The number of bytes written to this device since boot.
  • diskIOReads - The number of read accesses from this device since boot.
  • diskIOWrites - The number of write accesses to this device since boot

So, how does this load can be calculated manually, as it is not collected in the server?

In the end, we want to show graphs to users where they can find if a disk IO is heavy or not. We can either display this using Read/write bytes/sec or Read/write requests/sec.

If we display Read/write requests/sec alone, we can know that there is heavy I/O going on. But we won't be knowing if the disk R/W speed is effected by this.

And displaying R/W speed alone can't tell us why the speed is effected - whether it is because of too many I/O operations or not enough buffer memory for asynchronous writes. Hence, we need to display both.

But, what is the other value disk IOLoad means and how can we calculate it and why is it not being collected in snmp. Does it cause huge load if enable this? If it cause heavily load collecting this value, then we can calculate it manually. But, what's the formula?


The information you indicate you have is not enough to calculate disk utilization %. Disk utilization % is calculated as disk_time_spent_in_io / elapsed_time.
For example, if your disk spends 0.25 seconds performing IO in a 1 second period, then your disk is 25% utilized.

The number of operations is meaningless when it comes to utilization %. Depending on your disk, and the type of IO you're performing (bulk vs random), it could be 100% utilized at 10 IOPS, or 10000 IOPS. The only way to know is by how long the disk is taking to perform those IOPs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.