Como posso monitorar o disco io?

233

Gostaria de fazer um monitoramento geral do disco io em um servidor linux debian. Quais são as ferramentas que eu deveria saber sobre esse disco de monitor io para que eu possa ver se o desempenho de um disco está maximizado ou picos em determinada hora durante o dia?

    
por camomileCase 08.11.2012 / 19:42

9 respostas

201

Para tendências de E / S de disco, existem algumas opções. Meu favorito pessoal é o comando sar de sysstat . Por padrão, ele gera uma saída assim:

09:25:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:35:01 AM     all      0.11      0.00      0.01      0.00      0.00     99.88
09:45:01 AM     all      0.12      0.00      0.01      0.00      0.00     99.86
09:55:01 AM     all      0.09      0.00      0.01      0.00      0.00     99.90
10:05:01 AM     all      0.10      0.00      0.01      0.02      0.01     99.86
Average:        all      0.19      0.00      0.02      0.00      0.01     99.78

O %iowait é o tempo gasto esperando na E / S. Usando o pacote Debian, você deve habilitar o coletor de estatísticas através do arquivo /etc/default/sysstat config após a instalação do pacote.

Para ver a utilização atual dividida por dispositivo, você pode usar o comando iostat , também do pacote sysstat:

$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode)    11/08/2012      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.84    0.00    0.08    1.22    0.07   97.80

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.09     1.02    2.58    0.49   112.79    12.11    40.74     0.15   48.56   3.88   1.19
xvdb              1.39     0.43    4.03    1.82    43.33    18.43    10.56     0.66  112.73   1.93   1.13

Algumas outras opções que podem mostrar o uso do disco em gráficos de tendência são munin e cactos .

    
por 08.11.2012 / 20:28
95

Dê uma olhada no iotop.

Ou iodump, se é mais baixo o seu modo de pensar.

Nota: Isso requer pelo menos que o kernel 2.6.20 funcione.

    
por 08.11.2012 / 19:44
79

Eu gosto de dstat . Pode mostrar totais e estatísticas por disco e até dispositivos md (RAID), também pode usar cores para melhor visão geral:

$ dstat -tdD total,sda,sdb,sdc,md1 60 
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
     time     | read  writ: read  writ: read  writ: read  writ: read  writ
08-11 22:08:17|3549k  277k: 144k   28k: 851k   62k: 852k   60k:  25k   82k
08-11 22:09:17|  60k  258k:1775B   15k:  13k   63k:  15k   60k:  68B   74k
08-11 22:10:17| 176k  499k:   0    14k:  41k  122k:  41k  125k: 273B  157k
08-11 22:11:17|  42k  230k:   0    14k:9830B   54k:  14k   51k:   0    70k
08-11 22:11:52|  28k  132k:   0  5032B:5266B   33k:9479B   28k:   0    37k
  • -t para timestamps
  • -d para estatísticas de disco
  • -D para especificar os dispositivos exatos a relatar
  • 60 para média acima de 60 segundos. A exibição é atualizada a cada segundo, mas somente uma vez a cada 60 segundos uma nova linha será iniciada.

  • não usado neste exemplo, mas -c pode relatar a porcentagem de espera de E / S, que na maioria dos casos está relacionada à CPU aguardando dados dos discos.

Ele está disponível para a maioria das distribuições Linux, mas às vezes precisa ser instalado a partir de repositórios.

    
por 08.11.2012 / 21:54
40

Apenas a partir de arquivos no seu computador (assumindo um kernel recente), é possível solicitar /sys/block/sda/stat ou %código%. Vai precisar de alguma tradução, no entanto. Mas é bom para um cheque rápido e sujo.

    
por 08.11.2012 / 22:20
28

Outra opção é usar: sudo iotop -aoP

-a    Will show accumulated output
-o    Will only output 
-P    Will only show processes instead of threads

Este programa informará quanto um processo gravou no disco e leu a partir do disco desde que o iotop foi iniciado.

    
por 02.04.2014 / 20:09
8

O monitoramento do disco Io pode ser feito por várias ferramentas, como as seguintes.

  1. Iostat
  2. Iozone
  3. SAR
  4. vmstat

Além disso, alguns conceitos importantes do sistema operacional são muito necessários para compreendê-los. Leia o tutorial completo do Linux IO

    
por 01.02.2013 / 12:34
7

Outra ótima ferramenta para uma rápida visão geral de onde vem a carga é atop

Ele pode mostrar uma visão geral de todos os recursos (CPU, memória / troca, E / S de rede e disco) ou você pode fazer drill down em um único recurso e classificar processos por quanto eles consomem.

    
por 17.04.2015 / 13:19
4

Por que não tentar nmon . Faz discos e rede com processos. Originalmente para o AIX, mas foi portado para o Linux há alguns anos.

    
por 27.06.2018 / 19:13
1

A melhor coisa a fazer se você quiser ver o desempenho por um longo período é usar o Centreon que é uma ferramenta poderosa baseada em Nagios . O Centreon permite que você monitore traçando gráficos dos desempenhos dos recursos e muitas outras coisas.

    
por 09.11.2012 / 11:51

Tags