Wenn ich "top" verwende, kann ich sehen, welche CPU ausgelastet ist und welcher Prozess meine gesamte CPU verwendet.
Wenn ich "iostat -x" verwende, kann ich sehen, welches Laufwerk ausgelastet ist.
Aber wie sehe ich, welcher Prozess den gesamten Durchsatz des Laufwerks nutzt?
linux
io
performance
system-administration
iostat
Matthew Crumley
quelle
quelle
Antworten:
Sie suchen
iotop
(vorausgesetzt, Sie haben Kernel> 2.6.20 und Python 2.5). Andernfalls möchten Sie sich in das Dateisystem einbinden. Ich empfehle das erstere.quelle
iotop
scheint eher die E / A-Bandbreite als die Anzahl der von Prozessen verbrauchten E / A anzuzeigen. Das ist nicht besonders relevant. Ein Prozess, der viele kleine Schreibvorgänge + Synchronisierung ausführt, verbraucht mehr E / A-Kapazität der Festplatte als ein Prozess, der einen großen zusammenhängenden Datenstapel mit hoher Geschwindigkeit schreibt.[jdb2/nvme0n1p1]
in iotop, aber ich hatte Glück mit Aktivierungs- / proc / sys / vm / block_dump und der Ausgabe zu einem gesunden / stabilen System zu vergleichen lxadm.com/Simple_filesystem_read/write_tracing_with_/proc/sys/... Es half Fund Ein Docker-Container, der ständig Kubectl-Anfragen erzeugt und die Burst-Credits eines EBS-Volumes mit Einträgen in erschöpft/home/spinnaker/.kube/cache/discovery/.../serverresources.json
. Sobald Sie die Dinge auf einen Benutzer- / Prozessnamen eingegrenzt haben,iotop -atku systemd-network | grep kubectl
kann auch etwas helfenSo finden Sie heraus, welche Prozesse im Status 'D' (Warten auf Festplattenantwort) derzeit ausgeführt werden:
while true; do date; ps aux | awk '{if($8=="D") print $0;}'; sleep 1; done
oder
watch -n1 -d "ps axu | awk '{if (\$8==\"D\") {print \$0}}'"
Wie Sie dem Ergebnis entnehmen können, blockieren der jdb2 / dm-0-8 (ext4-Journalprozess) und kdmflush Ihr Linux ständig.
Für weitere Details könnte diese URL hilfreich sein: Linux Wait-IO Problem
quelle
atop funktioniert auch gut und lässt sich auch auf älteren CentOS 5.x-Systemen, auf denen iotop nicht ausgeführt werden kann, problemlos installieren. Klicken Sie hier
d
, um Details zur Festplatte anzuzeigen?
.Dies zeigt deutlich, dass Java Pid 9862 der Schuldige ist.
quelle
TL; DR
Wenn Sie verwenden können
iotop
, tun Sie dies. Sonst könnte dies helfen.Verwenden Sie
top
und verwenden Sie dann diese Verknüpfungen:Dies muss Werte
> 1.0 wa
für mindestens einen Kern anzeigen - wenn keine Diskwaits vorhanden sind, gibt es einfach keine E / A-Last und Sie müssen nicht weiter suchen. In der Regel beginnen erhebliche Belastungen> 15.0 wa
.Wählen Sie 'S', die Prozessstatusspalte. Kehren Sie die Sortierreihenfolge um, sodass die 'R'-Prozesse (laufende Prozesse) oben angezeigt werden. Wenn Sie D-Prozesse erkennen können (auf Festplatte warten), haben Sie einen Indikator dafür, was Ihr Schuldiger sein könnte.
quelle
Für KDE-Benutzer können Sie 'ctrl-esc' verwenden, um einen Systemaktivitätsmonitor aufzurufen, und es gibt E / A-Aktivitätsdiagramme mit Prozess-ID und Name.
Ich habe aufgrund des Status "Neuer Benutzer" keine Berechtigung zum Hochladen von Bildern, aber Sie können das Bild unten überprüfen. Es hat eine Spalte zum Lesen und Schreiben von E / A.
quelle
Haben Sie darüber nachgedacht
lsof
(offene Dateien auflisten)?quelle
iotop mit der Flagge -a:
quelle