Como calcular a porcentagem de carga do IO do disco?

0

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?

    
por GP92 23.10.2016 / 09:06

1 resposta

1

As informações que você indica não são suficientes para calcular% de utilização de disco. Utilização de disco% é calculada como disk_time_spent_in_io / elapsed_time .
Por exemplo, se seu disco gastar 0,25 segundos realizando E / S em um período de 1 segundo, seu disco será utilizado em 25%.

O número de operações não faz sentido quando se trata de utilização%. Dependendo do seu disco e do tipo de IO que você está realizando (em massa versus aleatório), ele pode ser 100% utilizado em 10 IOPS ou 10000 IOPS. A única maneira de saber é quanto tempo o disco está levando para realizar esses IOPs.

    
por 23.10.2016 / 19:32

Tags