Unter Linux ist es auch möglich, E/A-Statistiken pro Prozess zu erhalten, sodass Sie mit einem Programm namens iotop genau sehen können, wer viel liest und schreibt. iotop muss mit dem Root-Benutzer gestartet werden. Sie können beispielsweise iotop verwenden, um zu erfahren, wie schnell Ihre Festplatte lesen und schreiben kann, und dann zum Beenden die Taste q drücken. Lesen Sie den Handbuchabschnitt zu iotop, um mehr über die Verknüpfungen zu erfahren, beispielsweise zum Sortieren von Spalten.
Um zu sehen, welcher Prozess auf die Festplatte schreibt, können wir den Befehl „iotop“ verwenden, um diese Informationen zu erhalten
# iotop
Es zeigt eine Ausgabe wie im folgenden Beispiel an:
Total DISK READ : 0.00 B/s | Total DISK WRITE : 88.95 M/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 88.95 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 27236 be/4 root 0.00 B/s 88.95 M/s 0.00 % 87.91% dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc 25600 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % less -s 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 22 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u30:0] 7 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcuos/0] 10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcuob/0] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 13 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper] 14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 15 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [perf] 17 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [xenwatch] 18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [xenbus] 20 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd] 21 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] 22 be/5 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksmd] 23 be/7 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khugepaged] 24 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto] 25 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd] 26 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bioset] 27 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kblockd] 28 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [md] 29 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [devfreq_wq] 31 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kswapd0] 32 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [fsnotify_mark] 1058 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % cupsd -f
Von den hier vorgestellten Spalten könnten uns die folgenden interessieren:
- TID :Diese Spalte enthält die PID des Prozesses, der E/A-Anforderungen stellt. Dies kann verwendet werden, um das Programm zu untersuchen oder zu beenden.
- DISKETTE LESEN :Diese Spalte zeigt die Anzahl der Bytes, die pro Sekunde vom aufgelisteten Prozess gelesen werden.
- DISKETTE SCHREIBEN :Diese Spalte gibt die Anzahl der Bytes an, die der aufgelistete Prozess pro Sekunde geschrieben hat.
- IO :Diese Spalte zeigt den Prozentsatz der Zeit, die der aufgelistete Prozess mit der Ausgabe von E/A-Anforderungen verbracht hat.
- BEFEHL :Diese Spalte zeigt den Namen des Prozesses, der E/A verarbeitet. Wenn dies ein Master-Prozess ist, kann er auch Befehlszeilenschalter enthalten.
Im obigen Beispiel haben wir in einer anderen ssh-Sitzung einen dd-Test (dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc) ausgeführt, um die W/R-Aktion anzuzeigen, die auf die Festplatte geht .
Wenn Sie nur die aktuellen Prozesse sehen möchten, die auf die Festplatte schreiben, drücken Sie die Taste „o“ und Sie erhalten eine Ausgabe wie:
Total DISK READ : 0.00 B/s | Total DISK WRITE : 86.90 M/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 86.90 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 27239 be/4 root 0.00 B/s 86.90 M/s 0.00 % 89.17 % dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc
Im Folgenden sind einige der gebräuchlichsten Optionen aufgeführt, die wir verwenden können:
- Klicken Sie nach links und rechte Pfeiltasten um die Sortierung zu ändern.
- Drücken Sie r um die Sortierreihenfolge umzukehren.
- Drücken Sie o nur um Prozesse oder Threads zu sehen, die tatsächlich E/A ausführen, anstatt alle Prozesse oder Threads anzuzeigen.
- Drücken Sie p zeigen nur Prozesse. Normalerweise zeigt iotop alle Threads an.
- Drücken Sie a Anzeige der kumulierten E/A anstelle der Bandbreite. In diesem Modus zeigt iotop die Anzahl der E/A-Prozesse seit dem Start von iotop an.
- Drücken Sie i um die Priorität eines Threads oder Prozess-Threads zu ändern, z. B. ionice.
- Drücken Sie q um iotop zu beenden.
Weitere Informationen finden Sie in den Manpages.
# man iotop