it-swarm.com.de

So überprüfen Sie die Festplattenleistung

So überprüfen Sie die Leistung einer Festplatte (entweder über Terminal oder GUI). Die Schreibgeschwindigkeit. Die Lesegeschwindigkeit. Cache Größe und Geschwindigkeit. Zufällige Geschwindigkeit.

332
Luis Alvarado

Terminal-Methode

hdparm ist ein guter Anfang.

Sudo hdparm -Tt /dev/sda

/dev/sda:
Timing cached reads:   12540 MB in  2.00 seconds = 6277.67 MB/sec
Timing buffered disk reads: 234 MB in  3.00 seconds =  77.98 MB/sec

Sudo hdparm -v /dev/sda gibt ebenfalls Auskunft.

dd gibt Auskunft über die Schreibgeschwindigkeit.

Wenn das Laufwerk kein Dateisystem hat (und nur dann ), verwenden Sie of=/dev/sda.

Andernfalls hängen Sie es in/tmp ein und schreiben und löschen Sie die Testausgabedatei.

dd if=/dev/zero of=/tmp/output bs=8k count=10k; rm -f /tmp/output

10240+0 records in
10240+0 records out
83886080 bytes (84 MB) copied, 1.08009 s, 77.7 MB/s

Grafische Methode

  1. Gehen Sie zu System -> Administration -> Festplatten-Dienstprogramm.
    • Alternativ können Sie das Gnome-Dienstprogramm über die Befehlszeile starten, indem Sie gnome-disks ausführen.
  2. Wählen Sie Ihre Festplatte im linken Bereich.
  3. Klicken Sie nun im rechten Bereich auf die Schaltfläche „Benchmark - Measure Drive Performance“ (Benchmark - Laufwerksleistung messen).
  4. Ein neues Fenster mit Diagrammen wird geöffnet. Sie finden zwei Schaltflächen. Eine ist für "Start Read Only Benchmark" und eine andere für "Start Read/Write Benchmark". Wenn Sie auf eine beliebige Schaltfläche klicken, wird das Benchmarking der Festplatte gestartet.

test

Benchmarking von Festplatten-E/A

Artikel

Möchtest du noch etwas?

420
Panther

Suominen hat recht, wir sollten eine Art Synchronisation verwenden; Es gibt jedoch eine einfachere Methode: conv = fdatasync erledigt den Job:

dd if=/dev/zero of=/tmp/output conv=fdatasync bs=384k count=1k; rm -f /tmp/output
1024+0records in
1024+0 records out
402653184 bytes (403 MB) copied, 3.19232 s, 126 MB/s
97
Tele

Ich würde die Verwendung von /dev/urandom nicht empfehlen, da es softwarebasiert und langsam ist. Es ist besser, zufällige Daten auf einer Ramdisk zu speichern. Beim Testen der Festplatte spielt der Zufall keine Rolle, da jedes Byte so geschrieben wird, wie es ist (auch auf ssd mit dd). Wenn wir jedoch einen deduppierten ZFS-Pool mit reinen Null- oder Zufallsdaten testen, besteht ein großer Leistungsunterschied.

Ein weiterer Gesichtspunkt muss die Einbeziehung der Synchronisationszeit sein. Alle modernen Dateisysteme verwenden Caching für Dateioperationen.

Um die Festplattengeschwindigkeit und nicht den Arbeitsspeicher wirklich zu messen, müssen wir das Dateisystem synchronisieren, um den Caching-Effekt zu beseitigen. Das geht ganz einfach mit:

time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k && sync"

mit dieser Methode erhalten Sie die Ausgabe:

sync ; time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k  && sync" ; rm testfile 
1024+0 records in
1024+0 records out
104857600 bytes (105 MB) copied, 0.270684 s, 387 MB/s

real    0m0.441s
user    0m0.004s
sys 0m0.124s

die Datenträger-Datenrate beträgt also nur 104857600/0,441 = 237772335 B/s -> 237 MB/s

Das sind über 100 MB/s weniger als beim Caching.

Viel Spaß beim Benchmarking,

49
Pasi Suominen

Wenn Sie die Lese- und Schreibgeschwindigkeit der Festplatte in Echtzeit überwachen möchten, können Sie das Tool iotop verwenden.

Dies ist nützlich, um genaue Informationen über die Leistung eines Datenträgers für eine bestimmte Anwendung oder Aufgabe zu erhalten. Die Ausgabe zeigt Ihnen die Lese-/Schreibgeschwindigkeit pro Prozess und die gesamte Lese-/Schreibgeschwindigkeit für den Server, die top sehr ähnlich ist.

So installieren Sie iotop:

Sudo apt-get install iotop  

Um es auszuführen:

Sudo iotop
35
Lars

Wenn Sie Genauigkeit wünschen, sollten Sie fio verwenden. Es erfordert das Lesen des Handbuchs (man fio), aber es gibt Ihnen genaue Ergebnisse. Beachten Sie, dass Sie für jede Genauigkeit genau angeben müssen, was Sie messen möchten. Einige Beispiele:

Sequentielle Lesegeschwindigkeit mit großen Blöcken (dies sollte in der Nähe der Zahl sein, die Sie in den Spezifikationen für Ihr Laufwerk sehen):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Sequentielle Schreibgeschwindigkeit mit großen Blöcken (dies sollte in der Nähe der Zahl liegen, die Sie in den Spezifikationen für Ihr Laufwerk sehen):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Zufälliger 4K-Lesevorgang QD1 (Dies ist die Zahl, die für die Leistung in der realen Welt wirklich wichtig ist, es sei denn, Sie wissen es mit Sicherheit besser):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Gemischte zufällige 4K-Lese- und Schreibvorgänge QD1 mit Synchronisierung (dies ist die schlechteste Fallzahl, die Sie jemals von Ihrem Laufwerk erwarten sollten, normalerweise weniger als 1% der aufgelisteten Zahlen im Datenblatt):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randrw --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Erhöhen Sie das Argument --size, um die Dateigröße zu erhöhen. Die Verwendung größerer Dateien kann die Anzahl verringern, die Sie je nach Laufwerkstechnologie und Firmware erhalten. Kleine Dateien liefern für Rotationsmedien "zu gute" Ergebnisse, da der Lesekopf nicht so viel bewegen muss. Wenn Ihr Gerät fast leer ist und Sie eine Datei verwenden, die groß genug ist, um das Laufwerk fast zu füllen, wird bei jedem Test das Worst-Case-Verhalten festgestellt. Bei einer SSD spielt die Dateigröße keine Rolle.

Beachten Sie jedoch, dass für einige Speichermedien die Größe der Datei nicht so wichtig ist wie die Gesamtzahl der während eines kurzen Zeitraums geschriebenen Bytes. Beispielsweise können einige SSDs mit vorgelöschten Blöcken eine erheblich schnellere Leistung aufweisen, oder sie verfügen über einen kleinen SLC-Flash-Bereich, der als Schreibcache verwendet wird, und die Leistung ändert sich, sobald der SLC-Cache voll ist. Ein weiteres Beispiel: SMR-Festplatten von Seagate verfügen über einen PMR-Cache-Bereich von etwa 20 GB, der eine recht hohe Leistung aufweist. Sobald er jedoch voll ist, kann das direkte Schreiben in den SMR-Bereich die Leistung um 10% gegenüber dem Original verringern. Die einzige Möglichkeit, diese Leistungsverschlechterung zu erkennen, besteht darin, zunächst so schnell wie möglich über 20 GB zu schreiben. Dies hängt natürlich alles von Ihrer Arbeitsbelastung ab: Wenn Ihr Schreibzugriff mit längeren Verzögerungen überlastet ist, die es dem Gerät ermöglichen, den internen Cache zu bereinigen, werden kürzere Testsequenzen Ihre reale Leistung besser widerspiegeln. Wenn Sie viele E/A-Vorgänge ausführen müssen, müssen Sie die Parameter --io_size und --runtime erhöhen. Beachten Sie, dass einige Medien (z. B. die meisten Flash-Geräte) durch solche Tests zusätzlichen Verschleiß erfahren. Meiner Meinung nach sollte ein Gerät, das nicht für diese Art von Tests geeignet ist, auf keinen Fall zur Speicherung wertvoller Daten verwendet werden.

Darüber hinaus verfügen einige hochwertige SSD-Geräte möglicherweise über noch intelligentere Algorithmen zur Abnutzungskorrektur, bei denen der interne SLC-Cache über genügend intelligente Funktionen verfügt, um Daten zu ersetzen, die während des Tests neu geschrieben werden, wenn sie denselben Adressraum (dh dieselbe Testdatei) erreichen ist kleiner als der gesamte SLC-Cache). Bei solchen Geräten spielt die Dateigröße wieder eine Rolle. Wenn Sie Ihre tatsächliche Arbeitslast benötigen, testen Sie diese am besten mit Dateigrößen, die Sie im wirklichen Leben sehen werden. Andernfalls sehen Ihre Zahlen möglicherweise zu gut aus.

Beachten Sie, dass fio die erforderliche temporäre Datei beim ersten Start erstellt. Es wird mit zufälligen Daten gefüllt, um zu vermeiden, dass Geräte, die durch Komprimieren der Daten betrügen, zu viele Zahlen erhalten, bevor sie in den permanenten Speicher geschrieben werden. Die temporäre Datei wird in den obigen Beispielen als fio-tempfile.dat bezeichnet und im aktuellen Arbeitsverzeichnis gespeichert. Wechseln Sie daher zuerst in das Verzeichnis, das auf dem Gerät bereitgestellt ist, das Sie testen möchten.

Wenn Sie eine gute SSD haben und noch höhere Zahlen sehen möchten, erhöhen Sie --numjobs oben. Das definiert die Parallelität für die Lese- und Schreibvorgänge. In den obigen Beispielen ist für numjobs der Wert 1 festgelegt. Bei diesem Test geht es also um das Lesen und Schreiben von Prozessen mit einem Thread (möglicherweise mit einer mit iodepth festgelegten Warteschlange). High-End-SSDs (z. B. Intel Optane) sollten hohe Nummern erhalten, auch ohne numjobs viel zu erhöhen (z. B. 4 sollte ausreichen, um die höchsten Spezifikationsnummern zu erhalten), aber einige "Enterprise" -SSDs müssen 32- 128, um die Spezifikationsnummern abzurufen, da die interne Latenz dieser Geräte höher ist, der Gesamtdurchsatz jedoch verrückt ist.

27

bonnie ++ ist das ultimative Benchmark-Dienstprogramm, das ich für Linux kenne.

(Ich bereite gerade eine Linux-Live-CD mit Bonnie ++ vor, um unsere Windows-basierte Maschine damit zu testen!)

Es kümmert sich um Caching, Synchronisierung, zufällige Daten, zufälligen Speicherort auf der Festplatte, kleine Updates, große Updates, Lese- und Schreibvorgänge usw. Vergleichen eines USB-Schlüssels, einer Festplatte (Rotary), eines Solid-State-Laufwerks und eines RAM-basierten Laufwerks Dateisystem kann für den Neuling sehr informativ sein.

Ich habe keine Ahnung, ob es in Ubuntu enthalten ist, aber Sie können es einfach aus dem Quellcode kompilieren.

http://www.coker.com.au/bonnie++/

25
Corto

Schreibgeschwindigkeit

$ dd if=/dev/zero of=./largefile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.82364 s, 223 MB/s

Blockgröße ist eigentlich ziemlich groß. Sie können es mit kleineren Größen wie 64k oder sogar 4k versuchen.


Lesegeschwindigkeit

Führen Sie den folgenden Befehl aus, um den Speichercache zu löschen

$ Sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

Lesen Sie nun die im Schreibtest erstellte Datei:

$ dd if=./largefile of=/dev/null bs=4k
165118+0 records in
165118+0 records out
676323328 bytes (676 MB) copied, 3.0114 s, 225 MB/s
22
Limon Monte

einige tipps zur verwendung von bonnie ++

bonnie++ -d [TEST_LOCATION] -s [TEST_SIZE] -n 0 -m [TEST_NAME] -f -b -u [TEST_USER] 
bonnie++ -d /tmp -s 4G -n 0 -m TEST -f -b -u james

Ein bisschen mehr unter: EINFACHES BONNIE ++ BEISPIEL .

14
nyxee

f3 - Blitzbetrug bekämpfen

Überprüfen Sie die Integrität, erkennen Sie gefälschte Flash-Laufwerke und testen Sie die Leistung - alles auf einen Schlag.

Mehr zu diese Antwort .

1
Pablo Bianchi