Linux IO Problem
ein Linux-Server in letzter Zeit abnormal, Es war ziemlich langsam und viele Programme hatten keine
Reaktion sogar gestoppt. offensichtlich ein paar tage, Wir haben festgestellt, dass die Last zu hoch ist
hoch der Hauptgrund ist, dass die Festplatten-E/A in der Nähe ist 100%.
In diesem Artikel erfahren Sie, wie Sie die Festplattenlast überprüfen können, um das gleiche Problem schneller zu lösen.
zuerst, ausführen oben Befehl.
oben – 16:15:05 oben 6 Tage, 6:25, 2 Benutzer, Durchschnittslast: 1.45, 1.77, 2.14
Aufgaben: 147 gesamt, 1 Laufen, 146 Schlafen, 0 gestoppt, 0 Zombie
Zentralprozessor(s): 0.2% uns, 0.2% seine, 0.0% ni, 86.9% Ich würde, 12.6% wa, 0.0% Hallo, 0.0% und
Mem: 4037872k insgesamt, 4003648k verwendet, 34224k frei, 5512k Puffer
Tauschen: 7164948k insgesamt, 629192k verwendet, 6535756k frei, 3511184k zwischengespeichert
Sie finden “12.6%” wa leicht,Wenn Sie feststellen, dass wa größer ist als? 30%, es zeigt eine hohe IO-Last an.
Zweitens, Du kannst rennen “iostat -x 1 10”
Aber Sie müssen iostat durch Ausführen installieren “yum installiere sysstat” wenn iostat
kann nicht gefunden werden.
Durchschnittliche CPU: %Benutzer %nice %sys %iowait %idle
0.00 0.00 0.25 33.46 66.29
Gerät: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz wait svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 1122 17.00 9.00 192.00 9216.00 96.00 4608.00 123.79 137.23 1033.43 13.17 100.10
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
check% nützlich 100.10 %Leerlauf 66.29
wenn “%sinnvoll” ist geschlossen für 100%,es bedeutet, dass zu viele E/A-Anforderungen vorliegen,I/O hat bereits Volllast ,
und es kann einen Engpass des Speichersystems geben.
Wenn Leerlauf gleich ist 70% ,dies zeigt an, dass IO sess hoch ist, Es gibt viele Wartezeiten.
du kannst kommunizieren
Wenn Sie die E/A-Leistung einer Festplatte testen müssen ,Sie können den folgenden Befehl ausführen
time dd if=/dev/zero bs=1M count=2048 of=direct_2G
Dieser Befehl kann eine Datei mit einer Größe von 2 GB im aktuellen Verzeichnis erstellen, Wir können I/O testen
während der Dateierstellung laden.
Das folgende Skript kann den E/A-Status zu Spitzenzeiten überprüfen.
monitor_io_stats.sh
#!/bin/sch
/etc/init.d/syslog stop
Echo 1 > /proc/sys/vm/block_dump
Schlaf 60
dmesg | awk’/(LESEN|SCHREIBEN|schmutzig)/ {Prozess[$1]++} ENDE {zum (x in Bearbeitung) \
Druckvorgang[x],x}’ |sortieren nein |awk ‘{drucken $2 ” ” $1}’ | \
Kopf -n 10
Echo 0 > /proc/sys/vm/block_dump
/etc/init.d/syslog start
Quell-URL http://www.cnblogs.com/mfryf/archive/2012/03/12/2392012.html