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

MySQL-Lernprogramm Clustered Index

Das Clustering ist eigentlich relativ zur InnoDB-...

So installieren und verwenden Sie Cockpit unter CentOS 8/RHEL 8

Cockpit ist ein webbasiertes Serververwaltungstoo...

Warum der CSS-Attributwert clear:right im Detail nicht funktioniert

Die Verwendung der Clear-Eigenschaft zum Löschen v...

W3C Tutorial (1): W3C verstehen

Das W3C, eine 1994 gegründete Organisation, zielt...

Details zur Überwachung von DOM-Elementen durch MutationObServer in JavaScript

1. Grundlegende Verwendung Es kann über den Mutat...

Einige Tipps zum Website-Design

Tatsächlich haben wir in letzter Zeit viel über W...

Lösung für Verbindungsfehler beim MySQL-Server 5.5

Die Lösung für das Problem, dass MySQL keine Verb...

So fügen Sie Docker ein Zertifikat hinzu

1. Upgrade-Vorgang: sudo apt-get update Probleme ...

Beispiel für den schnellen Aufbau eines Redis-Clusters mit Docker

Was ist Redis Cluster? Redis Cluster ist eine von...

Zusammenfassung des Wissens zu MySQL-Sperren

Sperren in MySQL Sperren sind ein Mittel, um Ress...

Beispiel für die Installation von nginx in einem angegebenen Verzeichnis

Aufgrund von Unternehmensanforderungen müssen zwe...

Einführung in die Verwendung von this in HTML-Tags

Zum Beispiel: Code kopieren Der Code lautet wie fo...

MySQL 8.0.25 Installations- und Konfigurations-Tutorial unter Linux

Das neueste Tutorial zur Installation von MySQL 8...