Como obter total leitura e gravação total de IOPS no Linux?

24

Como faço para ler e escrever IOPS separadamente no Linux, usando a linha de comando ou de forma programática? Eu instalei o sysstat package.

Por favor, me diga como eu os calculo separadamente usando os comandos do pacote sysstat .

Ou é possível calculá-los usando o sistema de arquivos?

ex: /proc ou /sys ou /dev

    
por shas 24.08.2015 / 12:18

1 resposta

37

iostat é parte do pacote sysstat , que é capaz de mostrar iops gerais, se desejado, ou mostrá-los separados por leituras / gravações.

Execute iostat com o sinalizador -d para mostrar apenas a página de informações do dispositivo e -x para obter informações detalhadas (estatísticas de leitura / gravação separadas). Você pode especificar o dispositivo para o qual deseja obter informações simplesmente adicionando-o depois na linha de comando.

Tente executar iostat -dx e observe o resumo para ter uma ideia da saída. Você também pode usar iostat -dx 1 para mostrar uma saída de atualização contínua, o que é útil para solucionar problemas ou monitorar ao vivo,

Usando awk , o campo 4 dará a você leituras / segundo , enquanto o campo 5 dará a você escritas / segundo .

Somente leituras / segundos:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

Escreve apenas / seg:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

Lê / seg e escreve / s separados por uma barra:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

IOPS geral (o que a maioria das pessoas fala):

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

Por exemplo, executar o último comando com a minha unidade principal, / dev / sda, é assim:

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

Note que você não precisa ser root para executar isso, tornando-o útil para usuários não privilegiados.

TL; DR: Se você estiver interessado apenas em sda , o comando a seguir fornecerá a você IOPS gerais para sda :

iostat -d sda | grep sda | awk '{ print $2; }'

Se você quiser adicionar a IOPS em todos dispositivos, poderá usar o awk novamente:

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

Isso produz uma saída assim:

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88

    
por 24.08.2015 / 12:45