Finden Sie heraus, welche Prozesse auf die Festplatte schreiben


31

Bei meinem Lenovo T400 und meinem Ubuntu blinkt die Anzeige für das Beschreiben der Festplatte ständig. Ich habe mich gefragt, ob es unter Linux möglich ist, herauszufinden, welche Prozesse die E / A-Vorgänge auf der Festplatte ausführen. Auf ähnliche Weise topkönnen Sie herausfinden, welche Prozesse die meiste CPU und den meisten Speicher belegen.

Antworten:


41

Iotop ist ein gutes Werkzeug für das, was Sie wollen. Sie können auch die akkumulierte E / A-Menge auf DISK READ, DISK WRITE, SWAPIN und IO (Gesamtprozentsatz) anzeigen. Dies ist durch eine raffinierte Schnittstelle:

  • Sie drücken einfach aauf die Tastatur, und es werden die hungrigsten Prozesse im Vordergrund sortiert.
  • Um die Reihenfolge umzukehren, drücken Sie einfach r.
  • Wenn Sie nach anderen Spalten sortieren möchten, drücken Sie einfach die linke / rechte Taste.

Wie top, die Präsentation ist ziemlich beschäftigt. Eine andere Sache ist, dass es nicht über die unzähligen Optionen topverfügt (z. B. kann ich keine der Spalten ausblenden, die mich nicht interessieren), aber das Tool ist mehr als gut genug für seinen spezifischen Zweck.


3
Powertop ist auch nützlich, um herauszufinden, wie viel der Akku eines Laptops verbraucht . iotop ist immer noch der erste Ort, an dem nach Festplattenzugriffen gesucht wird.
Gilles 'SO- hör auf böse zu sein'

man kann pass -o( --only) verwenden, um alle Aufgaben herauszufiltern, die keine E / A ausführen. Dies macht die Liste weniger überfüllt
Marcin Orlowski

15

Sie können lsof( man lsof ) verwenden. Das Folgende gibt eine Liste aller Dateien zurück, die zum Schreiben geöffnet sind:

lsof | grep -e "[[:digit:]]\+w"

1
Welche Dateien geöffnet sind und auf welche Dateien tatsächlich zugegriffen wird, ist zweierlei.
Psusi

@psusi Es ist sehr wahrscheinlich, dass auf eine offene Datei zum Schreiben zugegriffen wird. Weitere Informationen können auch abgerufen werden, indem lsof über die Manpage gelernt wird.
James Sumners

5
Dateien, die zum Schreiben geöffnet sind, können zu einem bestimmten Zeitpunkt geschrieben werden, müssen aber momentan nicht. Viele Dateien bleiben geöffnet, werden jedoch selten beschrieben. Andererseits können die Dateien, in die geschrieben wird, schnell geöffnet und geschlossen werden, sodass sie in lsof nicht angezeigt werden. In beiden Fällen ist es wenig hilfreich, herauszufinden, welcher Prozess gerade auf die Festplatte schreibt.
Psusi

Die waus dem obigen Befehl make grep Sie für Dateien , die für das Schreiben geöffnet sind nur . Zum Schreiben und Lesen geöffnete Dateien ( u) werden nicht angezeigt, können aber auch beschrieben werden. Wenn Sie möchten, dass Dateien zum Schreiben und zum Lesen und Schreiben geöffnet werden, ist dies genau das, wonach Sie suchen:lsof | grep -e "[[:digit:]]\+[wu]\{1\}"
Martijn

1
@ Martijn Sie möchten verwenden grep -e**w**, um Übereinstimmungen [0-9]\+[wu]in anderen Spalten zu vermeiden


2

Insbesondere bei geringer Festplattenaktivität ist es erforderlich, iotop im Batch-Modus zu verwenden, um zu verhindern, dass kurze Zugriffsleitungen schnell verschwinden. Die Antwort von Wie protokolliere ich Dateisysteme mit Lese- / Schreibrechten nach Dateinamen in Linux? zeigt, wie das geht.

Bisher iotopist die beste Gesamtlösung. Mit dem folgenden Befehl erhalten Sie eine Echtzeitausgabe aller Prozesse, die den Datenträger verwenden.

iotop -bktoqqq -d .5

where: -b     is batch mode
       -k     is kilobytes/s
       -t     adds timestamp
       -o     only show processes or threads actually doing I/O
       -qqq   removes output headers
       -d .5  updates every .5 seconds

Sobald Sie die Prozess-ID haben, können Sie die Dateien auch mit finden

 lsof -p $PID

1
Wie unterscheidet sich diese Antwort von den obigen (sehr alten) Antworten? Wenn Sie eine alte Frage beantworten, sollten Sie erläutern, inwiefern sich Ihre Antwort von den vorherigen unterscheidet. Dies hilft dem Leser, die Antworten zu sortieren.
Stephen Rauch

Vielen Dank für den Hinweis. Ich habe diese Antwort unter Berücksichtigung Ihres Kommentars bearbeitet.
Frank Breitling
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.