Warum wird der Großteil der Festplatten-E / A auf jbd2 und nicht auf den Prozess zurückgeführt, der die E / A tatsächlich verwendet?

16

Bei der Überwachung der Festplatten-E / A wird der größte Teil der E / A auf jbd2 zurückgeführt, während der ursprüngliche Prozess, der die hohe E / A verursacht hat, einem viel geringeren E / A-Prozentsatz zugeordnet wird. Warum?

Hier ist die iotopAusgabe eines Beispiels (andere Prozesse mit E / A <1% wurden weggelassen):

Bildbeschreibung hier eingeben

Wunderkerze
quelle
Geht das mit data=journal?
DepressedDaniel
@ DepressedDaniel nicht sicher, was du meinst. Früher habe ich nur iotop -OP
Sparkler

Antworten:

16

jbd2 ist ein Kernel-Thread, der das Dateisystem-Journal aktualisiert.

Das Verfolgen der Dateisystem- oder Datenträgeraktivität mit dem Prozess, der sie verursacht hat, ist schwierig, da die Aktivitäten vieler Prozesse miteinander kombiniert werden. Wenn beispielsweise zwei Prozesse gleichzeitig aus derselben Datei lesen, gegen welchen Prozess würde der Lesevorgang abgerechnet? Wenn zwei Prozesse in dasselbe Verzeichnis schreiben und das Verzeichnis nur einmal auf der Festplatte aktualisiert wird (Kombination der beiden Vorgänge), gegen welchen Prozess würde der Schreibvorgang abgerechnet?

In Ihrem Fall besteht der größte Teil des Datenverkehrs aus Aktualisierungen des Journals. Dies wird auf den Journalaktualisierer zurückgeführt, es gibt jedoch keine Rückverfolgung zwischen Journalaktualisierungen und den Prozessen, die die Schreibvorgänge verursacht haben, für die diese Journalaktualisierung erforderlich war.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Welche anderen Festplattenkategorien gibt es neben Journal-Updates? (Warum ist jdb2 nicht der einzige Eintrag in der Ausgabe von iotop?)
Wunderkerze
@Sparkler Dort werden auch die eigentlichen Daten geschrieben. (Es sei denn, Sie verwenden ein logarithmisch strukturiertes Dateisystem, die meisten jedoch nicht.)
Gilles 'SO - hören Sie auf, böse zu sein'
Das erklärt, was passiert. Aber es ist eine schlechte Zeit, wenn die E / A-Priorität des ursprünglichen Prozesses auf "Leerlauf" gesetzt wurde und jbd2weiterhin viele E / A- Vorgänge mit eigener E / A-Priorität ausgeführt werden.
31.