Eine einfache Möglichkeit, die Verarbeitungsgeschwindigkeit einer von Linux erkannten Festplatte zu messen

TL;DR Selbst wenn es sich um verschiedene Ebenen wie Betriebssystem und Middleware handelt, ist die Lese- / Schreibgeschwindigkeit der Festplatte immer ein Faktor, der einen Engpass darstellen kann. Einführung einer einfachen Methode zur Messung des Festplattendurchsatzes, wenn Sie den Verdacht haben, dass eine Festplatte der Engpass ist.

Szene verwenden

Als Beispiel halte ich es für nützlich, die eingeführte Methode zu untersuchen, wenn der Komprimierungsprozess aus irgendeinem Grund langsam ist, wenn der Dateikomprimierungsprozess durchgeführt wird.

Messen Sie den Lesedurchsatz der Festplatte

Der Lesedurchsatz kann gemessen werden, indem der Befehl "dd" verwendet wird, um die zu messende Festplatte auf "if" zu setzen und "/ dev / null" für "of" anzugeben. Beachten Sie übrigens, dass es sich um einen "dd" -Befehl handelt. Daher ist es wichtig zu wissen, dass es sich um einen sequentiellen Zugriff handelt.

dd if=/dev/sda1 of=/dev/null bs=16k status=progress

Die Ausgabe wird wie folgt sein.

584122368 bytes (584 MB) copied, 4.61756 s, 127 MB/s

Messen Sie die Verarbeitungsgeschwindigkeit jedes Befehls

Das oben eingeführte Verfahren führt zu einer nahezu reinen Plattengeschwindigkeit. Wie im Beispiel der Verwendungsszene möchten Sie beispielsweise bei einem langsamen Komprimierungsprozess möglicherweise unterscheiden, ob es sich um eine reine Festplattengeschwindigkeit handelt oder ob der Komprimierungsprozess ein Engpass und ein langsamer Vorgang ist. In einem solchen Fall ist der Befehl "pv", der die Verarbeitungsgeschwindigkeit jedes Befehls messen kann, wirksam.

Was ist der pv-Befehl?

Der Befehl pv ist ein Befehl, der die Datenmenge misst, die eine Pipe kreuzt, wenn eine Pipe-Verarbeitung durchgeführt wird. Wenn Sie beispielsweise das folgende Beispiel haben, können Sie die Datenmenge überprüfen, die vom Befehl "tar" an den Befehl "lz4" übergeben wird, dh wie schnell die Verarbeitung des Befehls "tar" ausgeführt wird. Auf diese Weise kann festgestellt werden, ob der Befehl "tar" der Engpass oder der Befehl "lz4" der Engpass ist, wenn die Ausführungsgeschwindigkeit der folgenden Befehle aus irgendeinem Grund langsam ist.

tar -b 256 -cvf - /data/ | lz4 -c

Wie benutzt man

Sie können messen, indem Sie den Befehl pv zwischen die zu messenden Rohre einfügen, wie unten gezeigt.

tar -b 256 -cvf - /data/ | pv | lz4 -c > /dev/null
tar -b 256 -cvf - /data/mysql/ | lz4 -c | pv > /dev/null

Die Ausgabe wird wie folgt sein.

8.66GiB 0:00:04 [2.19GiB/s] [  <=>           ]

abschließend

Ich denke, es gibt viele Möglichkeiten, die Leistung einer Festplatte zu messen, aber dieses Mal habe ich die oben beschriebene Methode eingeführt, um sie auf einfache Weise zu überprüfen. Es gibt verschiedene Arten des Festplattenzugriffs, z. B. "Lesen", "Schreiben", "Zufälliges E / A", "Sequentielles E / A" und Geschwindigkeitsindex "IOPS", "Durchsatz", also immer "Was ist diesmal?" Wenn Sie wissen, dass "Ist dies ein Prozess, der ein Zugriffsmuster verursacht?", Können Sie sich der Entdeckung von Engpässen problemlos nähern.

Recommended Posts

Eine einfache Möglichkeit, die Verarbeitungsgeschwindigkeit einer von Linux erkannten Festplatte zu messen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Einfache Möglichkeit, die Quelle der Python-Module zu überprüfen
Einfache Möglichkeit, 0 abhängig von der Anzahl der Ziffern vorangestellt [Python]
python3 Messen Sie die Verarbeitungsgeschwindigkeit.
So erhöhen Sie die Verarbeitungsgeschwindigkeit der Erfassung der Scheitelpunktposition
Erstellen Sie ein zweidimensionales Array, indem Sie am Ende eines leeren Arrays mit numpy eine Zeile hinzufügen
Eine einfache Möglichkeit, die in Python benötigte Zeit anzuzeigen und sie intelligenter zu verbessern
Eine einfache Möglichkeit, die Amazon-Produkt-API in Python aufzurufen
Berücksichtigen Sie die Verarbeitungsgeschwindigkeit, um den Bildpuffer mit numpy.ndarray zu verschieben
Eine einfache Möglichkeit, einen zuvor ausgeführten Befehl in ipython erneut auszuführen
So geben Sie das Ausgabeergebnis des Linux-Befehls man in eine Datei aus
[Python3] Definition eines Dekorators, der die Ausführungszeit einer Funktion misst
Ein Befehl zum einfachen Überprüfen der Netzwerkgeschwindigkeit auf der Konsole
Untersuchen Sie effiziente Verfahren, um die Empfindlichkeit weiblicher Ritter mithilfe dynamischer Planung um das 3,5-Milliarden-fache zu erhöhen
[Golang-Fehlerbehandlung] Der beste Weg, die Verarbeitung nach der Art des Fehlers aufzuteilen
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
Ich habe versucht, das Ergebnis des A / B-Tests mit dem Chi-Quadrat-Test zu überprüfen
Messen Sie die Assoziationsstärke in einer Kreuztabelle
Die Geschichte der Verarbeitung A von Blackjack (Python)
[Python] So sortieren Sie nach dem N-ten M-ten Element eines mehrdimensionalen Arrays
Ich habe einen Appdo-Befehl erstellt, um Befehle im Kontext der App auszuführen
Speichern Sie das numpy-Array mithilfe des Wave-Moduls in einer WAV-Datei
Link zu den Datenpunkten des von jupyterlab & matplotlib erstellten Diagramms
So berechnen Sie die Volatilität einer Marke
Über die Verarbeitungsgeschwindigkeit von SVM (SVC) von Scikit-Learn
Eine clevere Möglichkeit zur Zeitverarbeitung mit Python
So laden Sie einfach CPU / Speicher unter Linux
So messen Sie die Leitungsgeschwindigkeit vom Terminal aus
Ich habe die Verarbeitungsgeschwindigkeit der numpy eindimensionalisierung überprüft
Eine einfache Möglichkeit, Java von Python aus aufzurufen
[Python] Sie können ein Objekt mithilfe des Pickle-Moduls in einer Datei speichern.
Verwendung zum Aufrufen einer Methode einer Instanz, bevor sie von __new__ zurückgegeben wird
[Ruby] Wie ersetze ich nur einen Teil der Zeichenkette, der mit dem regulären Ausdruck übereinstimmt?
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Nehmen Sie eine Instanz einer Python-Ausnahmeklasse nicht direkt als Argument für die Ausnahmeklasse!
Fügen Sie eine Funktion hinzu, um dem Wetter heute mitzuteilen, dass der Bot locker ist (hergestellt von Python).
Ein Memo zum visuellen Verstehen der Achse von Pandas.Panel
Werfen Sie einen Blick auf die Verarbeitung von LightGBM Tuner
Speichern Sie das von pyqtgraph gezeichnete Diagramm in einem Bild
Eine einfache Möglichkeit, ein Importmodul mit jupyter zu erstellen
Schritte zur Berechnung der Wahrscheinlichkeit einer Normalverteilung
Python Hinweis: Das Rätsel, einer Variablen eine Variable zuzuweisen
Auch Anfänger können es schaffen! Einfache Möglichkeit, Sankey Diagram in Plotly zu schreiben
[Linux] [C / C ++] So ermitteln Sie den Wert der Rücksprungadresse einer Funktion und den Funktionsnamen des Aufrufers
Ein Beispiel für einen Mechanismus, der eine Vorhersage von HTTP aus dem Ergebnis des maschinellen Lernens zurückgibt
Wie man zeichnet, indem man die Farbe des Diagramms kontinuierlich mit matplotlib ändert und einfach viele Legenden anordnet
Eine Geschichte über die Portierung des Codes "Versuchen Sie zu verstehen, wie Linux funktioniert" nach Rust
So erstellen Sie einen interaktiven LINE BOT 004 (beantworten Sie den Stichtag eines börsennotierten Unternehmens)