Contagem de IOPS em disco no GNU / Linux

2

Não consigo encontrar informações sobre maneiras de contar os disk-iops no GNU / Linux por algum período de tempo. Eu vi iostat, mas não tenho certeza se está certo. Também eu preciso de ferramenta, que pode contar iops para todo o tempo desde que o sistema é iniciado, mas iostat não faz isso. Quero dizer, iops de disco para sistemas inteiros e para qualquer volume lógico.

Pode haver algumas ferramentas para limitar os iops de disco para volume lógico ou smth assim.

Se isso importa, eu uso o Debian. Também uso hardware MegaRaid Raid Controller. Pode ser que influencie em smth.

    
por rush 19.12.2011 / 10:29

3 respostas

6

O iostat é o caminho certo para obter a IO count ao longo do tempo.

Se você quiser totais desde a inicialização, poderá ler os de /proc/disktats . A descrição do formato do arquivo está no Documentation/iostats.txt do seu kernel (ou aqui ).

Essas informações também estão disponíveis por dispositivo ou por partição em /sys/block/${DEVICE}/stat e /sys/block/${DEVICE}/${DEVPART}/stat (substitua ${DEVICE} pelo nome do seu dispositivo, por exemplo, sda e ${DEVPART} com o nome da sua partição, por exemplo. sda5 ).

    
por 19.12.2011 / 10:43
3

Eu prefiro usar cd /dev; iostat -xk 3 sd? fio? para assistir ao disco IO. Dê uma olhada neste trecho da amostra:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.20    0.00    4.58    0.00    0.00   94.22

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdg               0.00     0.00    6.67  238.00  3413.33 39774.67   353.04     0.25    1.02   0.37   9.17
sda               0.00     0.00    5.33 3570.67  2730.67 42230.50    25.15     0.44    0.12   0.07  25.20
sdc               0.00     0.00   10.33  795.00  3089.33 44510.00   118.21     0.40    0.47   0.16  12.83
sdf               0.00     0.00    6.67  254.67  3413.33 40318.67   334.68     0.24    0.93   0.35   9.07
sdh               0.00     0.00   14.33  338.00  3444.00 43286.67   265.26     0.27    0.78   0.29  10.23
sdi               0.00     0.00    8.67  906.33  4437.33 44533.17   107.04     0.36    0.40   0.15  14.17
sdb               0.00     0.00    4.67 2355.33  2389.33 44427.50    39.68     0.51    0.21   0.08  18.87
sdd               0.00     0.00    7.00  256.00  3414.67 40434.67   333.46     0.32    1.22   0.37   9.60
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
fioa              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Sua média de IOPS para esse intervalo é a soma de r/s e w/s e seu avgrq-sz (tamanho médio da solicitação em setores) dá uma ideia se a carga de trabalho é aleatória ou sequencial.

Dê uma olhada em sdg vs. sda no exemplo acima. Ambos estão escrevendo em torno de 40MBps no disco, mas o tamanho da solicitação é muito menor para sda (carga de trabalho aleatória), resultando em um IOPS maior.

Se você quiser acompanhar IOPS (e outros desempenhos) por um período prolongado, sugiro usar nmon para coletar os dados e gerar gráficos bonitos.

    
por 05.06.2013 / 18:22
0

A iotop faz o que você quer? É talvez um pouco mais em tempo real do que você queria.

else, tente iostat 5 5

    
por 19.12.2011 / 10:35

Tags