Come posso monitorare il disco io?


267

Mi piacerebbe fare un po 'di monitoraggio generale del disco su un server Linux debian. Quali sono gli strumenti che dovrei sapere su quel monitor monitor io in modo da poter vedere se le prestazioni di un disco sono al massimo o picchi in un determinato momento della giornata?


Risposte:


225

Per le tendenze di I / O del disco ci sono alcune opzioni. Il mio preferito è il sarcomando di sysstat. Per impostazione predefinita, fornisce un output come questo:

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

Il %iowaitè il tempo trascorso in attesa di I / O. Usando il pacchetto Debian, è necessario abilitare il raccoglitore stat tramite il /etc/default/sysstatfile di configurazione dopo l'installazione del pacchetto.

Per visualizzare l'utilizzo corrente suddiviso per dispositivo, è possibile utilizzare il iostatcomando, anche dal pacchetto 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

Alcune altre opzioni che possono mostrare l'utilizzo del disco nei grafici di tendenza sono munin e cactus .


Munin o Cactus sono più ciò che sto cercando. Grazie per i suggerimenti.
Camomilla

6
Si noti che% iowait mostra solo il tempo in cui il kernel non aveva nient'altro da fare che attendere IO. Su un server con CPU al 100% questo sarà zero indipendentemente da quanto IO sta facendo.
Jürgen Strobel,

iostat -x dm-0 | dispositivo grep; iostat -xd 2 -y dm-0 | grep dm-0
Juan Medina,

104

Dai un'occhiata a iotop.

O iodump, se questo è più nel tuo modo di pensare.

Nota: questo richiede almeno il kernel 2.6.20 per funzionare.


Questo non è solo solo Linux, ma richiede anche un kernel più recente (o con patch).
Giordania,

Questi sembrano buoni per scoprire cosa sta succedendo in questo momento, ma sto cercando un monitoraggio dell'immagine più grande.
Camomilla

8
@camomileCase - non lo hai specificato nella tua domanda ...
tink

90

Mi piace dstat. Può mostrare totali e statistiche per disco e persino dispositivi md (RAID), inoltre può usare i colori per una migliore visione d'insieme:

$ 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 per i timestamp
  • -d per le statistiche del disco
  • -D per specificare i dispositivi esatti da segnalare
  • 60in media oltre 60 secondi. Il display viene aggiornato ogni secondo, ma solo una volta ogni 60 secondi verrà avviata una nuova riga.

  • non utilizzato in questo esempio, ma -cpuò indicare la percentuale di I / O di attesa, che nella maggior parte dei casi è correlata alla CPU in attesa di dati dai dischi.

È disponibile per la maggior parte delle distribuzioni Linux, ma a volte deve essere installato dai repository.


49

Solo dai file sul tuo computer (supponendo un kernel recente) puoi chiedere /sys/block/sda/stato /proc/diskstats. Avrà bisogno di una traduzione, tuttavia. Ma è bello per un controllo rapido e sporco.


22
/sys/block/sda/statè documentato su https://www.kernel.org/doc/Documentation/block/stat.txt
ignis


2
Il grande vantaggio di questa risposta è che non è necessario installare strumenti. È proprio lì. (Potenzialmente :-)
Ben Aveling

2
es. echo "leggi io unisci settori zecche scrivi io unisce settori zecche in volo ioticks timeinqueu"; cat / sys / block / vda / vda1 / stat; sleep 10; cat / sys / block / vda / vda1 / stat
Ben Aveling

35

Un'altra opzione è utilizzare: sudo iotop -aoP

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

Questo programma ti dirà quanto un processo ha scritto sul disco e letto dal disco da quando è stato avviato iotop.


Sento qualcosa accedere al disco, ma l'output accumulato sta aumentando molto lentamente, a volte per niente in un secondo ... ???
Michael,

Se senti il ​​disco, probabilmente è vecchio e / o lento. I moderni HDD tendono ad essere molto silenziosi. Che tipo di suoni sta emettendo? Utilizzare smartctlper vedere se il disco è integro.
Rudolfbyker,

8

Il monitoraggio del disco Io può essere eseguito da più strumenti come il seguente.

  1. iostat
  2. IOzone
  3. SAR
  4. vmstat

Anche alcuni concetti importanti del sistema operativo sono molto necessari per comprenderli ... leggi il tutorial completo di Linux IO


2
iozone serve per i test, non per il monitoraggio: "Iozone è uno strumento di benchmark del filesystem. Il benchmark genera e misura una varietà di operazioni sui file."
Andrew Beals,

7

Un altro ottimo strumento per una rapida panoramica della provenienza del carico è atop

Può mostrarti una panoramica di tutte le risorse (CPU, memoria / swap, I / O di rete e disco) oppure puoi eseguire il drill down su una singola risorsa e ordinare i processi in base al loro consumo.


5

Perché non provare Nmon . Fa dischi e si collega con i processi. Originariamente per AIX, ma è stato portato su Linux da alcuni anni.


1

La cosa migliore da fare se si desidera vedere le prestazioni per un lungo periodo è usare Centreon, che è un potente strumento basato su Nagios . Centreon ti consente di monitorare tracciando grafici delle prestazioni delle risorse e molte altre cose.


Quali altre cose? Qualche screenshot? Per favore, espandi la tua risposta.
Konrad Gajewski,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.