
Ich habe eine Samsung 960 Pro 512 GB SSD auf NVMe mit PCIe Gen.3x4 am Laufen. Ich verwende den Samsung NVMe-Treiber 2.0.0.1607. Die SSD läuft einwandfrei. Ich verstehe jedoch nicht, warum das Schreiben von 4k schneller ist als das Lesen von 4k. Ich verwende AS Benchmark:
Es ist ein Faktor von 3! Stimmt etwas nicht (mit meinem System oder AS Benchmark) oder ist das normal?
Antwort1
4k-Lesevorgänge sind das Schwierigste, was das Laufwerk bewältigen kann. Sie gehören zu den kleinsten Blockgrößen, die das Laufwerk verarbeiten kann, und es gibt keine Möglichkeit für das Laufwerk, große Datenmengen vorab zu laden. Tatsächlich sind sie wahrscheinlich ziemlich ineffizient, wenn die Load-Ahead-Logik des Laufwerks alles lesen soll, was größer als 4 KB ist.
„Normale“ Lesevorgänge vom Laufwerk sind wahrscheinlich größer als 4 KB, da es nur sehr wenige so kleine Dateien gibt, und selbst die Auslagerungsdatei wird wahrscheinlich in großen Stücken gelesen, da es für ein Programm seltsam wäre, „nur“ 4 KB Speicher ausgelagert zu haben. Dies bedeutet, dass jedes Vorladen, das das Laufwerk versucht, den Laufwerksdurchsatz tatsächlich beeinträchtigt.
4K-Lesevorgänge können zwar durch den Laufwerkspuffer laufen, aber der „zufällige“ Teil des Tests macht sie völlig unvorhersehbar. Der Controller weiß nicht, wann das Laufwerk möglicherweise wieder die üblicheren „großen“ Lesevorgänge benötigt.
4K-Schreibvorgänge können dagegen effizient gepuffert, in die Warteschlange gestellt und sequenziell ausgegeben werden. Der Laufwerkspuffer kann einen Großteil der Catch-and-Write-Arbeit übernehmen, für die er entwickelt wurde, und der Wear Leveller kann möglicherweise sogar alle diese 4K-Schreibvorgänge demselben Laufwerkslöschblock zuordnen, wodurch ein „zufälliger“ 4K-Schreibvorgang gelegentlich in etwas umgewandelt wird, das eher einem sequenziellen Schreibvorgang ähnelt.
Tatsächlich vermute ich, dass dies in der "4K-64Thrd"-Schreibweise geschieht, die "64-Thrd" istoffensichtlich mit einer großen Warteschlangentiefe, und signalisiert dem Laufwerk damit, dass es eine große Datenmenge zu lesen oder zu schreiben hat. Dies löst viele Schreibcluster aus und nähert sich so der sequentiellen Schreibgeschwindigkeit des Laufwerks. Beim Ausführen eines 4K-Schreibvorgangs entsteht immer noch ein Overhead, aber jetzt wird das Potenzial des Puffers voll ausgeschöpft. In der Leseversion des Tests erkennt der Laufwerkscontroller jetzt, dass er einer sehr konstanten hohen Belastung ausgesetzt ist, stoppt das Vorladen von Daten, vermeidet möglicherweise den Puffer und wechselt stattdessen in einen „rohen“ Lesemodus, wodurch er sich wieder der sequentiellen Lesegeschwindigkeit nähert.
Der Antriebsregler kann grundsätzlichetwasum einen 4K-Schreibvorgang effizienter zu gestalten, insbesondere wenn ein Cluster von ihnen zu einer ähnlichen Zeit eintrifft, während es nichts tun kann, um eineneinzel4K liest effizienter, insbesondere wenn versucht wird, den Datenfluss durch Vorabladen von Daten in den Cache zu optimieren.
Antwort2
Warum das Schreiben schneller sein kann als das Lesen, wurde bereits in anderen Antworten erläutert; ich möchte noch anmerken, dass das bei diesem Laufwerk völlig normal ist und durch Benchmarks, die man in Testberichten finden kann, bestätigt wird.
ArsTecnicas Rezension
ArsTechnicahat das Laufwerk überprüft, sowohl Ihre Version (512 GB) als auch die mit 2 TB:
(Diese Grafik ist im Testbericht nicht sofort sichtbar, es ist die fünfte in der ersten Galerie, Sie müssen darauf klicken)
Die Leistung dieser beiden Modelle ist sehr ähnlich und ihre Zahlen ähneln Ihren: Das Laufwerk kann mit 37 MB/s lesen und mit 151 MB/s schreiben.
AnandTechs Rezension
AnandTechhat das Laufwerk ebenfalls überprüft: Sie verwendeten das 2-TB-Modell und mittelten die Ergebnisse der Tests mit einer Warteschlangentiefe von 1, 2 und 4. Dies sind die Diagramme:
Das Laufwerk liest mit 137 MB/s und schreibt mit 437 MB/s. Die Zahlen sind viel höher als Ihre, aber das liegt wahrscheinlich an den höheren Warteschlangentiefen. Wie in Ihrem Fall ist die Schreibgeschwindigkeit dreimal so hoch wie die Lesegeschwindigkeit.
Testbericht von PC World
Eine weitere Rezension vonPC Welt: Sie haben die 1-TB-Version getestet und die Ergebnisse für 4K sind 30 MB/s beim Lesen und 155 MB/s beim Schreiben:
Die Schreibgeschwindigkeit entspricht Ihrer, aber hier ist das Laufwerk beim Lesen sogar noch langsamer. Das Ergebnis ist, dass das Verhältnis fünf zu eins beträgt, nicht drei zu eins.
Abschluss
Tests bestätigen, dass es bei diesem Laufwerk normal ist, dass die Schreibgeschwindigkeit für zufällige 4K viel schneller ist als die Lesegeschwindigkeit: Je nach Test kann sie sogar fünfmal schneller sein.
Ihr Laufwerk ist in Ordnung. Es gibt keinen Grund anzunehmen, dass es defekt ist oder dass Ihr System ein Problem hat.
Antwort3
Der SSD-Controller speichert Schreibvorgänge im integrierten NVRAM und überträgt sie zu geeigneten Zeitpunkten auf Flash-Medien. Die Schreiblatenz ist somit die Cache-Zugriffslatenz, normalerweise 20 µs. Lesevorgänge werden dagegen über das Medium ausgeführt, wobei die Zugriffszeit im besten Fall 120–150 µs beträgt.
Antwort4
Um Andreys Antwort zu ergänzen: Sie müssen den Overhead berücksichtigen, der entsteht, bevor die SSD dem Computer signalisieren kann, dass der Vorgang abgeschlossen ist.
Beim Schreiben müssen die Daten lediglich in einen internen RAM-Cache geschrieben werden. Später werden sie zusammen mit weiteren 4k-Blöcken und Metadaten, die zur Überprüfung, Fehlerkorrektur und Lokalisierung erforderlich sind, in den Flash-Speicher geschrieben.
Zum Lesen muss die SSD zunächst die Daten lokalisieren. Der Speicherort, den der Computer lesen möchte, wird als logische Adresse bezeichnet und hat keinen direkten Bezug zum physischen Speicherort der Daten im Flash-Speicher. Die SSD übersetzt die logische Adresse in eine physische, basierend auf der Geometrie des Flash-Speichers (der Anordnung der Zellen), der Neuzuordnung fehlerhafter Blöcke, dem Wear Leveling und verschiedenen anderen Faktoren. Anschließend muss sie warten, bis alle anderen Vorgänge abgeschlossen sind, bevor sie die Daten vom Flash abrufen, überprüfen und bei Bedarf erneut lesen und Fehlerkorrekturen anwenden kann. Möglicherweise muss sie sogar den gesamten Block an einer anderen Stelle neu schreiben.
Während die Gesamtzeit eines Schreibvorgangs länger sein kann als die eines typischen Lesevorgangs, ist die Zeit, die die SSD benötigt, um zu melden, dass der Vorgang abgeschlossen ist und weitere Befehle verarbeitet werden können, geringer. Bei großen Blöcken ist der Overhead nicht der begrenzende Faktor, aber bei vielen kleinen Blöcken beginnt er, die Lese-/Schreibgeschwindigkeit zu begrenzen.