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

Lösung für unvollständige Textanzeige im El-Tree

Inhaltsverzeichnis Methode 1: Der einfachste Weg,...

Vue implementiert Chat-Schnittstelle

In diesem Artikelbeispiel wird der spezifische Co...

Tipps zum Erstellen von Web-Tabellenrahmen

<br />Tipps zum Erstellen von Web-Tabellenra...

MySQL-Export ganzer oder einzelner Tabellendaten

Exportieren einer einzelnen Tabelle mysqldump -u ...

JDBC-Erkundung SQLException-Analyse

1. Übersicht über SQLException Wenn bei der Verwe...

Problem mit Berechtigungen zum Ändern gespeicherter Prozeduren in MySQL

Bei der Verwendung einer MySQL-Datenbank treten h...

Standards zum Schreiben von Codekommentaren bei der Webseitenerstellung

<br />Ich habe die in meiner Arbeit verwende...

Sechs wichtige Selektoren in CSS (merken Sie sie sich in drei Sekunden)

Von: https://blog.csdn.net/qq_44761243/article/de...

Beispielcode zur Implementierung einer schwebenden Seitenbox basierend auf JS

Wenn die Bildlaufleiste nach unten gezogen wird, ...