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?