iotop, aber für eine bestimmte Festplatte?

iotop, aber für eine bestimmte Festplatte?

Gibt es ein Tool wie iotopbut zum Überwachen von IO auf bestimmten Datenträgern? (Oder habe ich vielleicht eine Filtermethode übersehen iotop?) Wenn nicht, gibt es eine Möglichkeit, diese Informationen beispielsweise über abzurufen /proc? ( dstatusw. zeigt nur die Gesamtaktivität aller Prozesse pro Datenträger an, während ich wissen möchte, wie viel jeder Prozess beiträgt.)

Antwort1

Dies ist keine ideale Antwort, aber Sie erfahren jede Sekunde, welcher Prozess am meisten und wie viel auf eine bestimmte Festplatte (in diesem Fall /dev/sda) geschrieben hat:

dstat -tdD /dev/sda --top-io

Sie werden etwa Folgendes sehen:

dstat-Ausgabe

Antwort2

Kassefatrace:

Wechseln Sie beispielsweise mit cd in die Partition, die Sie überwachen möchten (in meinem Fall der Einhängepunkt /hdd), und führen Sie

sudo fatrace -c -t

Dann wird beispielsweise Folgendes touch /hdd/xangezeigt:

16:11:05.278541 touch(179482): + /hdd
16:11:05.278541 touch(179482): CWO /hdd/x

Einzelheiten:

Usage: fatrace [options...] 

Options:
  -c, --current-mount       Only record events on partition/mount of current directory.
  -o FILE, --output=FILE    Write events to a file instead of standard output.
  -s SECONDS, --seconds=SECONDS Stop after the given number of seconds.
  -t, --timestamp       Add timestamp to events. Give twice for seconds since the epoch.
  -p PID, --ignore-pid PID  Ignore events for this process ID. Can be specified multiple times.
  -f TYPES, --filter=TYPES  Show only the given event types; choose from C, R, O, or W, e. g. --filter=OC.
  -C COMM, --command=COMM   Show only events for this command.
  -h, --help            Show help.

Antwort3

Da es noch keine Antworten gibt...

Ich habe keinen einfachen Vorschlag (wie einen iotop-Switch), aber wenn Ihnen das wichtig ist, können Sie ein FUSE-Modul schreiben, das die Dateisysteme einfach woanders neu mountet (chroot für den zu untersuchenden Prozess) und die Menge der gelesenen/geschriebenen Daten zählt. Das sollte eine ziemlich einfache Anpassung bestehender Module sein. Sie können die FUSE-Community fragen, welche bestehende Lösung für den Anfang am besten geeignet sein könnte. Wahrscheinlich reicht sogar ihr Demomodul aus.

Antwort4

Sie können iostat verwenden, um den Festplatten-E/A auf Leistungsprobleme zu überwachen.

$ iostat -xd /proc

verwandte Informationen