Wie kann ich disk io überwachen?

267

Ich möchte eine allgemeine Überwachung der Festplatte auf einem Debian-Linux-Server durchführen. Was sind die Tools, die ich über diese Monitor-Festplatte wissen sollte, damit ich sehen kann, ob die Leistung einer Festplatte zu bestimmten Zeiten im Laufe des Tages maximal ist oder Spitzenwerte aufweist?

camomileCase
quelle

Antworten:

225

Für Datenträger-E / A-Trends gibt es einige Optionen. Mein persönlicher Favorit ist der sarBefehl von sysstat. Standardmäßig wird eine Ausgabe wie folgt ausgegeben:

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

Dies %iowaitist die Zeit, die für das Warten auf E / A aufgewendet wird. Wenn Sie das Debian-Paket verwenden, müssen Sie den stat-Collector nach der /etc/default/sysstatPaketinstallation über die Konfigurationsdatei aktivieren .

Um die aktuelle Auslastung nach Geräten iostataufzuteilen , können Sie den Befehl auch aus dem sysstat-Paket verwenden:

$ 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

Einige andere Optionen, die die Datenträgernutzung in Trenddiagrammen anzeigen können, sind Munin und Kakteen .

Jordanien
quelle
Munin oder Kakteen sind eher was ich suche. Danke für die Hinweise.
camomileCase
6
Beachten Sie, dass% iowait nur die Zeit anzeigt, zu der der Kernel nichts anderes zu tun hatte, als auf E / A zu warten. Auf einem 100% CPU-gebundenen Server ist dies Null, unabhängig davon, wie viel E / A er ausführt.
Jürgen Strobel
iostat -x dm-0 | grep Device; iostat -xd 2 -y dm-0 | grep dm-0
Juan Medina
104

Schauen Sie sich iotop an.

Oder Iodump, wenn das mehr nach Ihren Vorstellungen ist.

Hinweis: Damit dies funktioniert, ist mindestens Kernel 2.6.20 erforderlich .

basteln
quelle
Dies ist nicht nur Linux, sondern erfordert auch einen neueren (oder gepatchten) Kernel.
Jordan
Diese sehen gut aus, um herauszufinden, was gerade los ist, aber ich suche eine größere Bildüberwachung.
camomileCase
8
@camomileCase - das hast du in deiner Frage nicht angegeben ...
tink
90

Ich mag dstat. Es kann Summen und Statistiken pro Festplatte und sogar md-Geräte (RAID) anzeigen, kann auch Farben für eine bessere Übersicht verwenden:

$ 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 für Zeitstempel
  • -d für Festplattenstatistiken
  • -D um die genauen zu meldenden Geräte anzugeben
  • 60im Durchschnitt über 60 Sekunden. Die Anzeige wird jede Sekunde aktualisiert, aber nur alle 60 Sekunden wird eine neue Zeile gestartet.

  • Wird in diesem Beispiel nicht verwendet, -ckann jedoch den Warte-E / A-Prozentsatz melden, der in den meisten Fällen damit zusammenhängt, dass die CPU auf Daten von den Datenträgern wartet.

Es ist für die meisten Linux-Distributionen verfügbar, muss jedoch manchmal über Repositorys installiert werden.

jippie
quelle
49

Nur aus Dateien auf Ihrem Computer (unter der Annahme eines aktuellen Kernels) können Sie /sys/block/sda/statoder fragen /proc/diskstats. Es muss jedoch übersetzt werden. Aber es ist schön für einen schnellen und schmutzigen Check.

Charles-Brücke
quelle
22
/sys/block/sda/statist dokumentiert unter https://www.kernel.org/doc/Documentation/block/stat.txt
ignis
10
/proc/diskstatsist dokumentiert unter kernel.org/doc/Documentation/iostats.txt
Rikard Söderström
2
Ein großer Vorteil für diese Antwort ist, dass keine Tools installiert werden müssen. Es ist einfach da. (Möglicherweise :-)
Ben Aveling
2
zB echo "read io merge sector ticks write io merge sector ticks inflight ioticks timeinqueu"; cat / sys / block / vda / vda1 / stat; sleep 10; cat / sys / block / vda / vda1 / stat
Ben Aveling
35

Eine andere Option ist die Verwendung von: sudo iotop -aoP

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

Dieses Programm zeigt an, wie viel ein Prozess seit dem Start von iotop auf die Festplatte geschrieben und von der Festplatte gelesen hat.

Lanoxx
quelle
Ich höre etwas auf die Festplatte zugreifen, aber die akkumulierte Ausgabe steigt sehr langsam, manchmal gar nicht in einer Sekunde ...?
Michael
Wenn Sie die Festplatte hören, ist sie wahrscheinlich alt und / oder langsam. Moderne Festplatten sind in der Regel sehr leise. Was für Geräusche macht es? Verwenden Sie smartctldiese Option , um festzustellen, ob die Festplatte fehlerfrei ist.
Rudolfbyker
8

Die Überwachung von Disk Io kann mit verschiedenen Tools wie den folgenden durchgeführt werden.

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

Auch einige wichtige Betriebssystemkonzepte sind sehr wichtig, um sie zu verstehen. Lesen Sie das vollständige Tutorial zu Linux IO

sarath
quelle
2
iozone dient zum Testen und nicht zum Überwachen: "Iozone ist ein Dateisystem-Benchmark-Tool. Der Benchmark generiert und misst eine Vielzahl von Dateivorgängen."
Andrew Beals
7

Ein weiteres großartiges Tool für einen schnellen Überblick, woher die Last kommt, ist atop

Sie können eine Übersicht über alle Ressourcen (CPU, Speicher / Swap, Netzwerk und Festplatten-E / A) anzeigen oder einen Drilldown auf eine einzelne Ressource durchführen und die Prozesse nach ihrem Verbrauch sortieren.

Aaron Digulla
quelle
5

Warum nicht versuchen , nmon . Es macht Festplatten und vernetzt sich mit Prozessen. Ursprünglich für AIX, aber seit einigen Jahren auf Linux portiert.

Steve Rowe
quelle
1

Das Beste, was Sie tun können, wenn Sie die Leistung über einen längeren Zeitraum hinweg sehen möchten, ist die Verwendung von Centreon , einem leistungsstarken Tool, das auf Nagios aufbaut . Mit Centreon können Sie überwachen, indem Sie Diagramme der Ressourcenleistung und viele andere Dinge zeichnen.

omar
quelle
Welche anderen Dinge? Irgendwelche Screenshots? Bitte erweitern Sie Ihre Antwort.
Konrad Gajewski