Wie kann ich den Befehl dd unter Linux verwenden, um die E / A-Leistung meiner Festplatte zu testen? Wie überprüfe ich die Leistung einer Festplatte einschließlich der Lese- und Schreibgeschwindigkeit auf einem Linux-Betriebssystem? Wie kann ich den Befehl dd unter Linux I / O Performance Test verwenden?
Sie können die folgenden Befehle auf Linux- oder Unix-ähnlichen Systemen für einfache sequenzielle E / A-Leistungstests verwenden:
- dd Befehl : Es wird verwendet, um die Schreibleistung eines Plattengeräts auf einem Linux- und Unix-ähnlichen System zu überwachen.
Details zum Tutorial Schwierigkeit Mittel (rss) Root-Rechte Ja Anforderungen dd Zeit 15m - hdparm-Befehl : Er wird verwendet, um Festplattenparameter abzurufen / festzulegen, einschließlich des Testens der Lese- und Caching-Leistung eines Festplattengeräts auf einem Linux-basierten System.
In diesem Tutorial erfahren Sie, wie Sie mit dem Befehl dd die E/ A-Leistung der Festplatte testen.
- Verwenden Sie den Befehl dd, um die Lese- und Schreibleistung eines Plattengeräts zu überwachen:
- dd-Befehlsoptionen verstehen
- Serverlatenzzeit ermitteln
- Aber warum sind der Serverdurchsatz und die Latenzzeit so niedrig?
- Verwenden Sie den Befehl hdparm, um die Lesegeschwindigkeit der gepufferten und zwischengespeicherten Festplatte anzuzeigen
- Verwenden Sie den Befehl dd unter Linux, um die Lesegeschwindigkeit zu testen
- Linux-Laptop-Beispiel
- Apple OS X Unix (Macbook pro) Beispiel
- Kein Fan der Kommandozeilen-Tools…?
- Grafische Methode
- Ausführen des Tools unter Ubuntu 20.04 LTS:
- Welche Methode und welchen Befehl empfehlen Sie zum Testen der Festplatten-E / A-Leistung?
- Fazit
Verwenden Sie den Befehl dd, um die Lese- und Schreibleistung eines Plattengeräts zu überwachen:
Der Befehl dd ist nützlich, um die einfache sequenzielle E / A-Leistung zu ermitteln.
dd-Befehlsoptionen verstehen
In diesem Beispiel verwende ich ein RAID-10-Array (Adaptec 5405Z mit SAS SSD), das auf einem Ubuntu Linux 14.04 LTS-Server ausgeführt wird. Die grundlegende Syntax lautet wie folgt, um den Serverdurchsatz zu ermitteln:
Beispielausgaben:
Abb.01: Ubuntu Linux Server mit RAID10 und Testserver-Durchsatz mit dd
Bitte beachten Sie, dass ein Gigabyte für den Test geschrieben wurde und 135 MB / s Serverdurchsatz für diesen Test war. Wobei
- if=/dev/zero (wenn=/dev/input.file) : Der Name der Eingabedatei, aus der gelesen werden soll.
- von=/tmp/test1.img (von= / Pfad / zu / Ausgabe.datei) : Der Name der Ausgabedatei, in die Sie die Eingabe schreiben möchten.datei an.
- bs=1G (bs=block-size) : Legen Sie die Größe des Blocks fest, den dd verwenden soll. Für den Test wurde 1 Gigabyte geschrieben. Bitte beachten Sie, dass Linux 1 GB freien Speicherplatz im RAM benötigt. Wenn Ihr Testsystem nicht über genügend RAM verfügt, verwenden Sie einen kleineren Parameter für bs (z. B. 128 MB oder 64 MB usw.).
- count=1 (count=Anzahl der Blöcke): Die Anzahl der Blöcke, die dd lesen soll.
- oflag=dsync (oflag=dsync) : Synchronisierte E/A für Daten verwenden. Überspringen Sie diese Option nicht. Diese Option beseitigt das Caching und liefert gute und genaue Ergebnisse
- conv=fdatasyn: Auch dies weist dd an, einmal eine vollständige „Synchronisierung“ zu erfordern, kurz bevor es beendet wird. Diese Option ist äquivalent zu oflag=dsync.
Serverlatenzzeit ermitteln
In diesem Beispiel wurden 512 Bytes tausendmal geschrieben, um die RAID10-Serverlatenzzeit zu ermitteln:
dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync
Beispielausgaben:
1000+0 records in1000+0 records out512000 bytes (512 kB) copied, 0.60362 s, 848 kB/s
Bitte beachten Sie, dass der Serverdurchsatz und die Latenzzeit auch von der Server- / Anwendungslast abhängen. Daher empfehle ich, dass Sie diese Tests auf einem neu gestarteten Server sowie in Spitzenzeiten ausführen, um eine bessere Vorstellung von Ihrer Arbeitslast zu erhalten. Sie können diese Zahlen jetzt mit all Ihren Geräten vergleichen.
Aber warum sind der Serverdurchsatz und die Latenzzeit so niedrig?
Niedrige Werte bedeuten nicht, dass Sie langsame Hardware verwenden. Der Wert kann aufgrund des Cache des HARDWARE-RAID10-Controllers niedrig sein.
Verwenden Sie den Befehl hdparm, um die Lesegeschwindigkeit der gepufferten und zwischengespeicherten Festplatte anzuzeigen
Ich schlage vor, dass Sie die folgenden Befehle 2- oder 3-mal ausführen Führen Sie Timings für Geräte-Lesevorgänge zu Benchmark- und Vergleichszwecken durch:
### Buffered disk read test for /dev/sda ##hdparm -t /dev/sda1## OR ##hdparm -t /dev/sda
Um Timings von Cache-Lesevorgängen für Benchmark- und Vergleichszwecke durchzuführen, führen Sie den folgenden Befehl 2-3 Mal aus (beachten Sie die Option -T):
## Cache read benchmark for /dev/sda ###hdparm -T /dev/sda1## OR ##hdparm -T /dev/sda
ODER kombinieren Sie beide Tests:
hdparm -Tt /dev/sda
Beispielausgaben:
Abb.02: Linux hdparm-Befehl zum Testen der Lese- und Zwischenspeicherleistung der Festplatte
Beachten Sie erneut, dass aufgrund des Zwischenspeicherns von Dateisystemen bei Dateivorgängen immer hohe Leseraten angezeigt werden.
Verwenden Sie den Befehl dd unter Linux, um die Lesegeschwindigkeit zu testen
Um genaue Lesetestdaten zu erhalten, verwerfen Sie zuerst Caches vor dem Testen, indem Sie die folgenden Befehle ausführen:
flushecho 3 | sudo tee /proc/sys/vm/drop_cachestime dd if=/path/to/bigfile of=/dev/null bs=8k
Linux-Laptop-Beispiel
Führen Sie den folgenden Befehl aus:
Apple OS X Unix (Macbook pro) Beispiel
GNU dd hat viele weitere Optionen, aber OS X / BSD und Unix-ähnliche dd-Befehle müssen wie folgt ausgeführt werden, um echte Festplatten-E / A und nicht Speicher zu testen add sync Option wie folgt:
## Run command 2-3 times to get good results ###time sh -c "dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync"
Beispielausgaben:
1024+0 records in1024+0 records out104857600 bytes transferred in 0.165040 secs (635346520 bytes/sec) real0m0.241suser0m0.004ssys0m0.113s
Also bekomme ich 635346520 Bytes (635.347 MB / s) Schreibgeschwindigkeit auf meinem MBP.
Kein Fan der Kommandozeilen-Tools…?
Sie können das Festplatten-Dienstprogramm (gnome-disk-utility) auf einem Linux- oder Unix-basierten System verwenden, um dieselben Informationen abzurufen. Der folgende Screenshot stammt von meiner Fedora Linux v22-VM und meinem Ubuntu 20.04-Desktop:
Grafische Methode
Klicken Sie auf „Aktivitäten“ oder drücken Sie die Taste „Super“, um zwischen der Aktivitätsübersicht und dem Desktop zu wechseln. Typ „Festplatten“
Abb.03: Starten Sie das Gnome Disk Utility
Wählen Sie Ihre Festplatte im linken Bereich und klicken Sie auf die Schaltfläche Konfigurieren und klicken Sie auf „Benchmark Partition“:
Abb.04: Benchmark Disk / Partition
Klicken Sie abschließend auf die Schaltfläche „Benchmark starten …“ (möglicherweise werden Sie für den Benutzernamen und das Kennwort des Administrators befördert):
Abb.05: Endgültiges Benchmark-Ergebnis
Ausführen des Tools unter Ubuntu 20.04 LTS:
- Öffnen Sie zunächst Festplatten aus der Aktivitätsübersicht.
- Wählen Sie als Nächstes die Festplatte aus der Liste im linken Bereich aus.
- Wählen Sie die Menü-Taste und wählen Sie Benchmark disk… aus dem Menü.
- Klicken Sie auf Benchmark starten… und passen Sie die Parameter Übertragungsrate und Zugriffszeit wie gewünscht an.
- Klicken Sie abschließend auf Benchmarking starten, um zu testen, wie schnell Daten von der Festplatte gelesen werden können. Möglicherweise sind Administratorrechte erforderlich. Geben Sie Ihr Passwort oder das Passwort für das angeforderte Systemadministratorkonto ein.
Testen Sie die Leistung Ihrer Festplatte mit ‚Disks‘
Welche Methode und welchen Befehl empfehlen Sie zum Testen der Festplatten-E / A-Leistung?
- Ich empfehle den Befehl dd auf allen Unix-ähnlichen Systemen (time sh -c „dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync“))
- Wenn Sie GNU/Linux verwenden, verwenden Sie den Befehl dd (dd if=/dev/zero of=/tmp/Test).img bs=1G count=1 conv=fdatasync)
- Stellen Sie sicher, dass Sie die Argumente count und bs gemäß Ihrem Setup anpassen, um ein gutes Ergebnis zu erhalten.
- Die GUI-Methode wird nur für Linux / Unix-Laptopbenutzer mit Gnome 2- oder 3-Desktop empfohlen.
- Für detailliertes I / O-Performance-Benchmarking verwenden Sie den Befehl fio
- Wir verwenden die IOzone. Es ist ein Dateisystem-Benchmark-Tool. Der Benchmark generiert und misst eine Vielzahl von Dateioperationen.
Fazit
Sie haben gelernt, wie Sie die dd unter Linux oder Unix zum Testen einfacher und sequentieller E / A-Leistungsmessungen verwenden. Für ein detailliertes Benchmarking der E / A-Leistung versuchen Sie es mit dem „The Flexible I / O Tester (FIO)“ für Unix oder Linux. Weitere Informationen finden Sie unter Linux Überprüfen der IDE / SATA-Festplattenübertragungsgeschwindigkeit und der Handbuchseiten: hdparm(1).
🐧 Erhalten Sie die neuesten Tutorials zu Linux, Open Source & DevOps per RSS-Feed oder wöchentlichem E-Mail-Newsletter.
🐧 14 Kommentare bisher… füge eins hinzu ↓
Kategorie | Liste der Unix- und Linux-Befehle |
---|---|
Dateiverwaltung | cat |
Firewall | Alpine Awall * CentOS 8 * openSUSE • RHEL 8 * Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Netzwerkdienstprogramme | dig * host • ip • nmap |
OpenVPN | CentOS 7 * CentOS 8 * Debian 10 * Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Paketmanager | apk • apt |
Prozesse Management | bg • chroot • cron • disown • fg * jobs • killall • kill • pidof • pstree • pwdx • Zeit |
Suchen | grep * whereis • which |
Benutzerinformationen | Gruppen * id • lastcomm • last • lid/libuser-lid • logname • Mitglieder • Benutzer • whoami • wer • w |
WireGuard VPN | Alpine * CentOS 8 * Debian 10 * Firewall • Ubuntu 20.04 |