Was bewirkt, dass CPU-E / A warten, aber keine Festplattenoperationen?

12

Ich habe CPU-E / A-Wartezeiten von ungefähr 50%, aber wenn ich sie ausführe iostat 1, zeigt sie nur geringe bis gar keine Festplattenaktivität.

Welche Ursachen warten ohne iops?

HINWEIS: Hier sind keine NFS- oder FUSE-Dateisysteme vorhanden, es wird jedoch Xen-Virtualisierung verwendet.

Bildbeschreibung hier eingeben

Jason Cohen
quelle
Welche Distribution? Welche Version?
ZaMoose
2
Auch: Ist dies eine Xen-Hypervisor-Maschine oder eine VM mit den iowaits?
ZaMoose
Zeigt iotopIhnen etwas?
Janne Pikkarainen

Antworten:

7

NFS kann dies, und es würde mich nicht wundern, wenn andere Netzwerk-Dateisysteme (und sogar FUSE-basierte Geräte) ähnliche Auswirkungen hätten.

womble
quelle
Danke, aber in diesem Fall gibt es kein NFS und keine FUSE. Ich werde das auch zu der Frage hinzufügen.
Jason Cohen
6

Besteht die Möglichkeit, dass andere VMs auf dem Server die Festplatte beschädigen?

Ich weiß mit Virtualisierung, dass Sie einige seltsame Ergebnisse erhalten können, wenn der Host-Knoten überlastet ist.

lbft
quelle
Stimmt, aber das sollte in% statt io% stehlen, oder? Oder kann es dort auch überqueren?
Jason Cohen
3
Diebstahl tritt ein, wenn weniger CPU-Kapazität verfügbar ist als von den VMs angefordert. Wenn die physische Festplatte überlastet ist, werden Ihre Prozesse viel Zeit in iowait verbringen und darauf warten, dass sie an der Festplatte an der Reihe sind, auch wenn sie nicht viel auf die Festplatte treffen.
lbft
Ja, das hier. Eine andere Frage mit der gleichen Antwort finden Sie unter serverfault.com/a/209031/57468
mattdm
3

Wenn dies die Amazon EC2 Xen-Umgebung ist, die instanzbasierten Speicher verwendet, bitten Sie Amazon, den Zustand des Hosts zu überprüfen, der dieses Image enthält.

Wenn es sich um eine Xen-Umgebung handelt, in der Sie auf den Hypervisor zugreifen können, überprüfen Sie IOwait von außen auf das für die xvda- und xvdb-Geräte verwendete Festplatten-Image (Datei, Netzwerk, LVM-Slice usw.). Sie sollten auch das E / A-System im Allgemeinen auf den Hypervisor überprüfen, da andere Plattengeräte möglicherweise die Systemressourcen monopolisieren.

iostat -txk 5

ist in der Regel ein gutes Start-Diagnosewerkzeug. Für ALLE verfügbaren Geräte sind 5-Sekunden-Zusammenfassungen der E / A erforderlich. Dies ist sowohl beim Ein- als auch beim Ausblenden des VM-Images hilfreich.

Andy Finkenstadt
quelle
2

Überprüfen Sie die verfügbaren Dateideskriptoren / Inodes. Wenn Sie das Limit erreichen, tauschen sie und imitieren iowait

Bearbeiten

Ich habe gesehen, dass Sie Xen verwenden. Sehen Sie sich Ihre aktuellen Interrupts an. Möglicherweise ist blkif höher als normal.

Jetzt etwas zu spät, aber Munin installiert und es wird wirklich helfen, zukünftiges Debuggen.

Sonassi
quelle
1
sudo sysctl vm.block_dump=1

Überprüfen Sie dann dmesg, um zu sehen, was das Lesen / Schreiben von Blöcken oder das Verschmutzen von Inodes bewirkt.

Überprüfen Sie auch die Dateibeschränkung in der Datei limits.conf. Möglicherweise fordert ein Prozess mehr Dateien an, als er öffnen darf.

Neal
quelle
1

WARNUNG: HDPARM IST GEFÄHRLICH, LESEN SIE IMMER DEN BEFEHL, DEN SIE VERWENDEN WERDEN!

Wenn keine anderen virtuellen Maschinen die Festplatte (n) belasten, tun Sie dies

hdparm -f

auf den zugrunde liegenden physischen Datenträgern. Möglicherweise funktioniert der Festplatten-Cache nicht richtig. Dadurch werden die im Cache gespeicherten Daten geleert, und Sie können die E / A ständig überwachen, ob sie nach dem Leeren wieder ansteigen. Wenn ja, liegt ein Cache-Problem vor.

vakufo
quelle
0

Bei durchschnittlicher Auslastung sind blockierte Netzwerkvorgänge (dh lange Anrufe an einen externen DB-Server) häufiger geworden. Ich weiß es nicht genau, aber ich vermute, dass Netzwerk-E / A dazu führen kann, dass die CPU wartet, bis sie hochfährt. Kann das jemand bestätigen?

Ryan Allen
quelle
1
In den meisten modernen Maschinen, nein. Die meisten, wenn nicht sogar alle neueren Systeme verfügen über DMA-fähige Netzwerkkarten, um genau diese Art von Situation zu verhindern.
ZaMoose
0

Könnten Loopback-Geräte sein, die selbst über das Netzwerk gemountet werden.

Egdares Futch
quelle
0

Auf meinen Maschinen ist NFS der größte IO-WAIT "Produzent". Ich habe eine SSD in meinem Laptop, die verdammt schnell ist, also ist "echtes IO" nicht das Problem. Trotzdem habe ich wegen meiner gemounteten NFS-Shares manchmal eine Menge IO-Wartezeit.

SCP scheint manchmal auch zu IO Wait zu führen, jedoch in weit geringerem Maße.

Patrick Cornelissen
quelle
0

Das kann alles sein. Es bedeutet nur, dass etwas auf das Ende des E / A-Vorgangs wartet. Sie können über ps herausfinden, um welchen Prozess es sich handelt, dann gdb anhängen und die Rückverfolgung überprüfen, um festzustellen, welcher Anruf hängt (normalerweise sind dies netzwerkbezogene Dinge oder plötzlich getrennte Festplatten). Für fd info check out / proc.

eSyr
quelle
0

Ich habe auch ein ähnliches Problem erfahren, kurz bevor eine Festplatte in einem RAID ausfiel und einige SATA-Kabel mit engen Biegungen ausfielen .

Die CPU-Auslastung lag bei nahezu 0%, aber 1 oder mehr CPUs auf einem 4-Core-System verbrachten 100% ihrer Zeit über längere Zeiträume in IOwait (über topMulti-Line-CPU-Anzeige ermittelt) mit sehr geringen IOps und Bandbreite (ermittelt) via iostat), aber stoßweise hohe Interruptaktivität. Die interaktive Verwendung der Befehlszeile war bei jedem Datenträgerzugriff schmerzhaft (dh beim automatischen Speichern aus einer emacsSitzung einer anderen Person ), aber ansonsten tolerierbar, sobald die Zeiträume von IOwait verstrichen sind (und vermutlich waren die Vorgänge nach vielen Wiederholungsversuchen erfolgreich).

Mormegil
quelle