Zeigen Sie die Festplatten-E/A in Linux an und finden Sie die Prozesse heraus, die viel Lese- und Schreib-E/A beanspruchen

Zeigen Sie die Festplatten-E/A in Linux an und finden Sie die Prozesse heraus, die viel Lese- und Schreib-E/A beanspruchen

Hintergrund - Online Alert

Ein Online-Server hat einen Alarm ausgelöst und die Festplattenauslastung disk.util > 90, und der Alarm wurde weiterhin angezeigt.

Nachdem ich mich beim Server angemeldet hatte, habe ich mit iostat -x 1 10 die relevanten Informationen zur Festplattennutzung angezeigt. Die entsprechenden Screenshots sind wie folgt:

 # Wenn kein iostat-Befehl vorhanden ist, verwenden Sie yum install sysstat, um ihn zu installieren. # iostat -x 1 10 

Wie aus der obigen Abbildung ersichtlich, liegt der %util[IO] der VDB-Festplatte aufgrund häufigen Datenlesens bei fast 100 %.

Andere Feldbeschreibungen

Gerät: Gerätename
TPS: Die Anzahl der IO-Lese- und Schreibanforderungen pro Sekunde. Mehrere logische Anforderungen können zu einer einzigen I/O-Anforderung an das Gerät kombiniert werden.
Blk_read/s (kB_read/s, MB_read/s): Die Menge der vom Gerät gelesenen Daten, ausgedrückt in Blöcken (Kilobyte, Megabyte) pro Sekunde. Ein Block entspricht einem Sektor, die Blockgröße beträgt also 512 Byte.
Blk_wrtn/s (kB_wrtn/s, MB_wrtn/s): Die Menge der auf das Gerät geschriebenen Daten, ausgedrückt in Blöcken (Kilobyte, Megabyte) pro Sekunde. Ein Block entspricht einem Sektor, die Blockgröße beträgt also 512 Byte.
Blk_read (kB_read, MB_read): Gesamtzahl der gelesenen Blöcke (Kilobyte, Megabyte).
Blk_wrtn (kB_wrtn, MB_wrtn): Gesamtzahl der geschriebenen Blöcke (Kilobyte, Megabyte).

rrqm/s: Die Anzahl der pro Sekunde mit dem Gerät zusammengeführten Leseanforderungen. Das heißt, delta(rmerge)/s
wrqm/s: Die Anzahl der pro Sekunde mit dem Gerät zusammengeführten Schreibanforderungen. Das heißt, delta(wmerge)/s
r/s: Die Anzahl der pro Sekunde abgeschlossenen Lesevorgänge des E/A-Geräts. Das ist delta(rio)/s
w/s: Die Anzahl der pro Sekunde abgeschlossenen Schreibvorgänge von E/A-Geräten. Das heißt, delta(wio)/s
rsec/s (rkB/s, rMB/s): Die Anzahl der Sektoren, die pro Sekunde vom Gerät gelesen werden (Kilobyte, Megabyte). Jede Sektorgröße beträgt 512 Bytes
wsec/s (wkB/s, wMB/s): Die Anzahl der Sektoren, die pro Sekunde auf das Gerät geschrieben werden (Kilobyte, Megabyte). Jede Sektorgröße beträgt 512 Bytes

avgrq-sz: Die durchschnittliche Datenmenge pro Geräte-E/A-Vorgang (in Sektoren). Das heißt, delta(rsec+wsec)/delta(rio+wio)
avgqu-sz: Durchschnittliche Länge der E/A-Warteschlange, die jedes Mal an das Gerät gesendet wird.
warten: Die durchschnittliche Wartezeit für jede IO-Anforderung. (inkl. Wartezeit und Verarbeitungszeit in Millisekunden)
r_await: Durchschnittliche Wartezeit für jede IO-Leseanforderung. (inkl. Wartezeit und Verarbeitungszeit in Millisekunden)
w_await: Durchschnittliche Wartezeit für jede IO-Schreibanforderung. (inkl. Wartezeit und Verarbeitungszeit in Millisekunden)
svctm: Durchschnittliche Verarbeitungszeit (in Millisekunden) für jeden Geräte-E/A-Vorgang. warnen! Vertrauen Sie dem Wert dieses Feldes nicht mehr; dieses Feld wird in einer zukünftigen Version von sysstat entfernt.
%util: Wie viel Prozent einer Sekunde werden für E/A-Vorgänge verwendet oder wie viel Zeit pro Sekunde ist die E/A-Warteschlange nicht leer? Wenn sich dieser Wert 100 % nähert, tritt eine Gerätesättigung ein.

Suchen Sie den Prozess mit hoher IO-Auslastung

Über den iotop-Befehl

Wenn der Befehl nicht verfügbar ist, installieren Sie ihn mit dem Befehl „yum install iotop“.

# iotop -oP

Mit diesem Befehl können Sie detailliertere Informationen anzeigen, z. B. Prozessnummer, Festplattenlesevolumen, Festplattenschreibvolumen, IO-Prozentsatz und die beteiligten Befehle. „Beide Grep-Befehle verursachen große IO-Lesevolumina.“

Über den Befehl pidstat

# Bedeutung des Befehls: E/A-Statistiken anzeigen, jede Sekunde aktualisiert # pidstat -d 1 

Es ist ersichtlich, dass der Grep-Befehl eine große Menge an Lese-E/A belegt. Anschließend können Sie die relevanten Prozessinformationen basierend auf der PID anzeigen.

Hinweis: Die PID in dieser Abbildung unterscheidet sich von der in der vorherigen Abbildung, da der Prozess in der vorherigen Abbildung ausgeführt wurde und diese Abbildung der nach der Ausführung generierte Prozess ist [beide führen dasselbe Skript aus].

Zusammenfassen

Oben habe ich Ihnen gezeigt, wie Sie die Festplatten-E/A in Linux überprüfen und die Prozesse finden, die viel Lese- und Schreib-E/A beanspruchen. Ich hoffe, es wird Ihnen helfen!

Das könnte Sie auch interessieren:
  • Linux IO-Multiplexing Epoll-Netzwerkprogrammierung
  • Detaillierte Erklärung des Linux-Befehls iostat
  • Der Unterschied zwischen Level-Triggerung und Edge-Triggerung von Linux IO
  • Interessante Erklärung des Socket IO-Modells von Linux
  • Diskussion über Details der IO-, Bedingungs- und Schleifenverarbeitung in der Linux-Shell-Programmierung
  • So verwenden Sie iostat zum Anzeigen der IO-Leistung von Linux-Festplatten
  • Eine detaillierte Einführung in Linux IO

<<:  JavaScript zur Implementierung der Webversion des Gobang-Spiels

>>:  Detaillierte Erklärung der MySQL 30-Militärregeln

Artikel empfehlen

Grafisches Tutorial zur Offline-Installation und Konfiguration von MySQL 8.0.2

Die Offline-Installationsmethode von MySQL_8.0.2 ...

So legen Sie MySQL-Berechtigungen mit phpmyadmin fest

Inhaltsverzeichnis Schritt 1: Melden Sie sich als...

CSS3 verwendet Animationsattribute, um coole Effekte zu erzielen (empfohlen)

animation-name Animationsname, kann mehrere Werte...

Eine vollständige Liste häufig verwendeter HTML-Tags und ihrer Eigenschaften

Zunächst müssen Sie einige Eigenschaften von HTML...

JavaScript implementiert einfache Rechnerfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

Detaillierte Erklärung des Kopierobjekts von jQuery

<!DOCTYPE html> <html lang="de"...

Linux-Befehl „exa“ (bessere Dateianzeige als „ls“)

Installieren Befolgen Sie zur Installation die RE...

Beispielcode für horizontales Balkendiagramm von Echarts Bar

Inhaltsverzeichnis Horizontales Balkendiagramm Da...

Wie stellt MySQL die Datenintegrität sicher?

Die Bedeutung von Datenkonsistenz und -integrität...

Detaillierte Erläuterung des Speichermodells der JVM-Serie

Inhaltsverzeichnis 1. Speichermodell und Laufzeit...