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

32

Como obtenho leitura e gravação de IOPS separadamente no Linux, usando a linha de comando ou de maneira programática? Eu instalei o sysstatpacote.

Por favor, diga-me como eu os calculo separadamente usando os sysstatcomandos do pacote.

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

ex: /proc ou /sysou/dev

shas
fonte

Respostas:

46

iostatfaz parte do sysstatpacote, que é capaz de mostrar os tópicos gerais, se desejado, ou os mostra separados por leituras / gravações.

Execute iostatcom 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 posteriormente na linha de comando.

Tente executar iostat -dxe examinar o resumo para ter uma ideia da saída. Você também pode usar iostat -dx 1para mostrar uma saída continuamente atualizada, útil para solucionar problemas ou monitorar ao vivo,

Usando awk, o campo 4 fornecerá leituras / segundo , enquanto o campo 5 fornecerá gravações / segundo .

Somente leituras / segundo:

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

Somente gravações / s:

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

Lê / s e escreve / s separados com uma barra:

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

IOPS geral (sobre 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 minha unidade principal, / dev / sda, se parece com isso:

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

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

TL; DR: se você está interessado apenas sda, o comando a seguir fornecerá IOPS gerais para sda:

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

Se você deseja adicionar o IOPS em todos os dispositivos, use o awk novamente:

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

Isso produz saída da seguinte forma:

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

Daneel
fonte
Obrigado Mr.Dannel, é útil. se eu quiser obter o sistema completo IOPS de leitura / gravação Como obter?
Shas
quando eu executo iostat -dx 1tenho ans como este Linux 2.6.35.14-106.fc14.i686 (shashi) 08/24/2015 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 2.46 13.80 2.27 2.03 136.26 123.91 60.53 0.11 25.77 4.43 1.91 dm-0 0.00 0.00 2.35 0.77 93.07 6.11 31.86 0.17 53.73 2.59 0.81 dm-1 0.00 0.00 1.02 2.83 8.14 22.66 8.00 0.83 214.34 0.60 0.23 dm-2 0.00 0.00 1.37 11.89 34.77 95.14 9.80 1.67 126.06 0.84 1.11para dm-0, dm-1, dm-2 recursivamente devo adicionar?
Shas
Atualizei a resposta com um modelo geral e um exemplo para sda. Se você simplesmente quer ver o IOPS para o seu disco rígido, em seguida, usar esse último comando para IOPS gerais ( iostat -d sda | grep sda | awk '{ print $2; }')
Daneel
Não, eu quero separadamente como você menciona na 1ª resposta. confundir pouco com dm-*então eu perguntei, eu preciso executar adição nessas partições
shas
Ahh, certo. Você pode usar o seguinte comando para verificar o que é cada dm-xdispositivo: lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- Atualizarei a resposta com isso, além de como adicionar os resultados.
Daneel