Die von iotop angezeigten Informationen werden nicht in gleicher Weise für einzelne Prozesse und für das gesamte System erfasst. Die "tatsächlichen" globalen Zahlen sind nicht die Summe der prozessbezogenen Zahlen (das ist, was "insgesamt" ist).
Alle Informationen stammen aus dem proc-Dateisystem .
- Für jeden Prozess liest iotop Daten aus , insbesondere die Werte und . Dies sind die Anzahl von Bytes übergeben und Systemaufrufen (einschließlich Varianten wie , , , , etc.).
/proc/PID/io
rchar
wchar
read
write
readv
writev
recv
send
- Die globalen "tatsächlichen" Werte werden gelesen
/proc/vmstat
, insbesondere die pgpgin
und pgpgout
Werte. Diese messen die zwischen dem Kernel und der Hardware ausgetauschten Daten (genauer gesagt die Daten, die von der Block-Device-Schicht im Kernel gemischt werden).
Es gibt viele Gründe, warum sich die Daten pro Prozess und die Daten der Blockgeräte-Schicht unterscheiden. Im Speziellen:
- Zwischenspeichern und Puffern bedeuten, dass E / A-Vorgänge auf einer Ebene möglicherweise nicht zur gleichen Zeit oder genauso oft auf der anderen Ebene stattfinden. Beispielsweise werden aus dem Cache gelesene Daten als Lesevorgänge des auf sie zugreifenden Prozesses gewertet, es gibt jedoch keine entsprechenden Lesevorgänge von der Hardware (die bereits früher stattgefunden haben, möglicherweise im Auftrag eines anderen Prozesses).
- Die Daten auf Prozessebene umfassen Daten, die über Pipes, Sockets und andere Ein- / Ausgaben ausgetauscht werden, bei denen keine zugrunde liegende Festplatte oder ein anderes Blockgerät beteiligt ist.
- Die Daten auf Prozessebene berücksichtigen nur Dateiinhalte, keine Metadaten.
Dieser letzte Unterschied erklärt, was Sie hier sehen. Das Entfernen von Dateien wirkt sich nur auf Metadaten aus, nicht auf Daten. Der Prozess schreibt also nichts. Es kann sein, dass Verzeichnisinhalte gelesen werden, um die zu löschenden Dateien aufzulisten, aber das ist klein genug, um unbemerkt einen Bildlauf durchzuführen.
Ich glaube nicht, dass Linux eine Möglichkeit bietet, Dateimetadaten-Updates zu überwachen. /sys/fs
Bei einigen Dateisystemen können Sie die E / A pro Dateisystem über die Einträge unter überwachen . Ich glaube nicht, dass Sie Metadaten-E / A für bestimmte Prozesse berücksichtigen können. Dies wäre im Allgemeinen sehr kompliziert, da mehrere Prozesse dazu führen könnten, dass dieselben Metadaten gelesen oder geändert werden.
rm -r
gerade verarbeitet wirdstrace
, da die Reihenfolge der Durchquerung in jedem Verzeichnis etwas unvorhersehbar ist. Wenn in diesem Dateisystem nur ein einziger massiver Vorgang ausgeführt wird und es nicht zu viele feste Links gibt, könnendf -i
Sie sehen, wie viele Dateien verarbeitet wurden.