Es bedeutet, auf "File I / O" zu warten, das heißt, jeden Lese- / Schreibaufruf für eine Datei, die sich im angehängten Dateisystem befindet, aber wahrscheinlich auch die Wartezeit für das Einlagern oder Laden von Seiten in den Speicher, z. B. Bibliotheken, nicht noch im Speicher oder Seiten mit mmap () -Dateien, die sich nicht im RAM befinden.
Das Warten auf IPC-Objekte wie Sockets, Pipes, ttys, select (), poll (), sleep (), pause () usw. wird NICHT gezählt.
Grundsätzlich ist es an der Zeit, dass ein Thread auf synchrones Disc-IO wartet. Während dieser Zeit kann er theoretisch ausgeführt werden, kann jedoch nicht, da einige Daten, die er benötigt, noch nicht vorhanden sind. Solche Prozesse werden normalerweise im "D" -Zustand angezeigt und tragen zum Lastdurchschnitt einer Box bei.
Verwirrenderweise denke ich, dass dies wahrscheinlich Datei-E / A auf Netzwerk-Dateisystemen beinhaltet.
Die iowait-Zeit ist die Zeit, die ein Prozess im Kernel-E / A-Scheduler verbringt. Soweit ich weiß, hat dies nichts mit Netzwerk-E / A zu tun, sofern es sich um reguläre Socket-Verbindungen handelt. Das Warten auf Netzwerkdateisysteme wie NFS wird jedoch einige Zeit in Anspruch nehmen.
quelle
Es tut.
Im Übrigen ist auf einem der von mir verwalteten Server ein hoher iowait-Wert zu verzeichnen, der durch eine fehlerhafte NFS-Bereitstellung verursacht wird.
Und schauen Sie sich die Prozesse im
D
Staat an.quelle
Das iowait beinhaltet die Netzwerkanrufe. Ich sage dies, weil NFS aus der Sicht des Kernels genauso viele lokale Linux-Dateisysteme behandelt:
Wenn Prozesse einen Write-On-Dateideskriptor 5 aufrufen, geschieht Folgendes:
Die Prozesse wissen also nicht, welche Art von Dateisystem verwendet wird (vfs magic), und das iowait ist dasselbe wie bei einem lokalen Dateisystem.
quelle