O seguinte é a saída net-snmp e, como você pode ver, diskIOLA não está disponível:
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
De acordo com as definições aqui link :
diskIOLAx means the x minute average load of disk (%).
Os outros valores na tabela são:
- diskIONRead - O número de bytes lidos neste dispositivo desde a inicialização.
- diskIONWritten - O número de bytes gravados neste dispositivo desde a inicialização.
- diskIOReads - O número de acessos de leitura deste dispositivo desde a inicialização.
- diskIOWrites - O número de acessos de gravação a este dispositivo desde a inicialização
Então, como essa carga pode ser calculada manualmente, pois não é coletada no servidor?
No final, queremos mostrar gráficos aos usuários onde eles podem encontrar se o disco rígido for pesado ou não. Podemos exibir isso usando bytes de leitura / gravação / segundo ou solicitações de leitura / gravação / segundo.
Se exibirmos somente solicitações de leitura / gravação / s, poderemos saber que há E / S pesada acontecendo. Mas não saberemos se a velocidade R / W do disco é afetada por isso.
E a exibição da velocidade R / W sozinha não pode nos informar por que a velocidade é afetada - seja por causa de muitas operações de E / S ou por não haver memória buffer suficiente para gravações assíncronas. Portanto, precisamos exibir os dois.
Mas, qual é o outro valor que o disco IOLoad significa e como podemos calculá-lo e por que ele não está sendo coletado no snmp. Isso causa uma carga enorme se habilitar isso? Se isso causar muita carga coletando esse valor, podemos calculá-lo manualmente. Mas, qual é a fórmula?