So überprüfen Sie die Leistung einer Festplatte (entweder über ein Terminal oder eine grafische Benutzeroberfläche). Die Schreibgeschwindigkeit. Die Lesegeschwindigkeit. Cache Größe und Geschwindigkeit. Zufällige Geschwindigkeit.
hard-drive
performance
Luis Alvarado
quelle
quelle
Antworten:
Terminal-Methode
hdparm
ist ein guter Ort, um zu beginnen.sudo hdparm -v /dev/sda
wird auch Auskunft geben.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.
Grafische Methode
gnome-disks
Benchmarking von Festplatten-E / A
Artikel
Möchtest du noch etwas?
quelle
/dev/urandom
als auch/dev/zero
Eingabendd
beim Testen einer SSD empfehlen, da die Komprimierbarkeit der Daten einen massiven Einfluss auf die Schreibgeschwindigkeit haben kann./tmp
Dateisystem verwendet heutzutage häufig eine Ramdisk. Das Schreiben auf/tmp
scheint also Ihr Gedächtnis zu testen, nicht Ihr Festplattensubsystem.Suominen hat recht, wir sollten eine Art Synchronisation verwenden; Es gibt jedoch eine einfachere Methode: conv = fdatasync erledigt den Job:
quelle
Ich würde es nicht empfehlen,
/dev/urandom
weil es softwarebasiert und langsam wie ein Schwein 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:
mit dieser Methode erhalten Sie die Ausgabe:
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,
quelle
Wenn Sie die Lese- und Schreibgeschwindigkeit der Festplatte in Echtzeit überwachen möchten, können Sie das iotop- Tool 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, ähnlich der
top
.So installieren Sie iotop:
Um es auszuführen:
quelle
Wenn Sie Genauigkeit wünschen, sollten Sie verwenden
fio
. 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 (diese sollte in der Nähe der in den technischen Daten Ihres Laufwerks angegebenen Zahl liegen):
Sequentielle Schreibgeschwindigkeit mit großen Blöcken (diese sollte in der Nähe der in den technischen Daten Ihres Laufwerks angegebenen Zahl liegen):
Random 4K read QD1 (das ist die Zahl, die für die Leistung in der realen Welt wirklich wichtig ist, es sei denn, Sie wissen es genau):
Mixed Random 4K Read und Write QD1 mit Sync (dies ist der schlechteste Fall, den Sie jemals von Ihrem Laufwerk erwarten sollten, normalerweise weniger als 1% der im Datenblatt aufgelisteten Zahlen):
Erhöhen Sie das
--size
Argument , 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, Kürzere Testsequenzen spiegeln Ihre reale Leistung besser wider. Wenn Sie viele E / A-Vorgänge ausführen müssen, müssen Sie beide erhöhen
--io_size
und--runtime
Parameter. 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 realen Leben sehen werden. Andernfalls sehen Ihre Zahlen möglicherweise zu gut aus.
Beachten Sie, dass
fio
beim ersten Start die erforderliche temporäre Datei erstellt wird. 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 wirdfio-tempfile.dat
in den obigen Beispielen aufgerufen 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 diese
--numjobs
. Das definiert die Parallelität für die Lese- und Schreibvorgänge. Die obigen Beispiele sind alle sonumjobs
eingestellt,1
dass es sich bei dem Test um das Lesen und Schreiben von Prozessen mit einem Thread handelt (möglicherweise mit einer Warteschlange, die mit gesetzt istiodepth
). High - End - SSDs (zB Intel Optane) sollten hohe Zahlen erhalten , auch ohne Erhöhungnumjobs
viel (zB4
sollte ausreichen , um die höchsten spec Zahlen zu erhalten) , aber einige „Enterprise“ SSDs benötigen gehen32
-128
die spec Zahlen zu erhalten , da die interne Latenz von denen , Geräte ist höher, aber der Gesamtdurchsatz ist verrückt.quelle
max_sectors_kb
. Ich habe die obigen Beispielbefehle geändert, um eine Blockgröße von 1 MB zu verwenden, da dies mit Hardware aus der realen Welt zu funktionieren scheint. Und ich habe auch getestet, dassfsync
zum Lesen keine Rolle spielt.iodepth
habe1
für den wahlfreien Zugriff genau festgelegt, weil in Programmen der realen Welt häufig Algorithmen / Logik ausgeführt werden, die nicht mit einer Tiefe von mehr als 1 funktionieren. Wenn diese Tiefe "zu niedrig" ist, ist Ihr E / A-Gerät daher fehlerhaft. Es ist wahr, dass einige SSD-Geräte von einer höheren Tiefe als 32 profitieren. Können Sie jedoch auf eine reale Arbeitslast verweisen, die Lesezugriff erfordert und eine höhere Jodrate als 32 aufweist? TL; DR: Wenn Sie mit einem Gerät mit hoher Latenz eine unglaublich hohe Lese-Benchmark-Zahl reproduzieren möchten, verwendeniodepth=256 --numjobs=4
Sie diese Zahlen , aber erwarten Sie nie, dass Sie sie wirklich sehen.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++/
quelle
Schreibgeschwindigkeit
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
Lesen Sie nun die im Schreibtest erstellte Datei:
quelle
einige tipps zur verwendung von bonnie ++
Ein bisschen mehr unter: SIMPLE BONNIE ++ BEISPIEL .
quelle
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 dieser Antwort .
quelle