Erhöht eine SSD-Seitengröße> Dateisystemblockgröße die SSD-Schreibverstärkung?

8

Nach dem Lesen der SSD-Technologie gibt es eine Frage, die ich scheinbar nicht beantworten kann.

Nach diesem Anandtech-Test verwenden die meisten aktuellen SSDs eine Seitengröße von mindestens 8 KB. Soweit ich weiß, bedeutet dies, dass nicht weniger als 8 KB gleichzeitig in das NAND der SSD geschrieben werden können. Anscheinend hilft dies sowohl für zufällige Schreibvorgänge als auch für andere Dinge.

Viele aktuelle Dateisysteme verwenden jedoch eine Blockgröße von 4 KB. Bedeutet dies, dass für einen einzelnen 4K-Schreibvorgang die SSD-Schreibverstärkung mindestens 2 beträgt, da eine ganze 8KB-Seite geschrieben wird? Was ist mit zufälligen 4K-Schreibvorgängen?

TinkerTank
quelle

Antworten:

1

Ich bin mir nicht 100% sicher, habe mich aber mit der gleichen Frage befasst. Ich glaube, dass es einen Effekt haben kann, aber auch von den physischen und logischen Blockgrößen abhängt, die von der Festplatte gemeldet werden. In diesem Fall würde dies sowohl die Leistung als auch die Haltbarkeit beeinträchtigen.

Die Dateisystemblockgröße ist die kleinste adressierbare Einheit für das Dateisystem. Dateisystemanforderungen werden an den Gerätetreiber übergeben, um die Daten von der Festplatte abzurufen. Der Gerätetreiber konvertiert basierend auf den logischen / physischen Blockgrößen der Festplatte in Geräteblockanforderungen. Unter Linux können Sie zB /sys/block/sda/queue/logical_block_sizeund sehen /sys/block/sda/queue/physical_block_size.

Wenn die Geräteblockgröße kleiner als die Seitengröße des Geräts ist, werden die Anforderungen ohnehin weiter aufgeschlüsselt, unabhängig davon, wie groß sie zu Beginn sind. Dies scheint ohnehin ein suboptimales Verhalten zu sein, das zuerst behoben werden sollte - ich denke, es ist nicht ungewöhnlich, 512B auf einer modernen SSD mit 4 / 8KiB-Seiten zu sehen. Siehe Ändern der Sektorgröße bei Samsung 840-SSDs .

Wenn die Geräteblockgröße der Seitengröße entspricht, z. B. 8 KB, ist es wahrscheinlich, dass zwei 4 KB-Anforderungen vom Dateisystem zu einer unnötigen zweiten Anforderung führen, und insbesondere bei Schreibvorgängen ist dies ziemlich schlecht.

Was mir nicht klar ist, ist das Ausmaß, in dem einer dieser Effekte durch Controller- oder OS-Caching gemindert wird. Jon's Antwort liefert nicht viele Details oder Beweise. Es klingt ziemlich wahrscheinlich, dass Lesevorgänge zwischengespeichert werden, da dies ohnehin eine risikofreie Optimierung der Leistung und Haltbarkeit wäre. Das Schreib-Caching ist normalerweise auch für SSDs aktiviert, ist jedoch optional. Dies hängt dann ein wenig von der Cache-Richtlinie / dem Flush-Intervall ab. Unter Windows scheint es einige Verwirrung hinsichtlich der Schreib-Caching-Optionen zu geben (die akzeptierte Antwort auf Was bedeutet "Schreiben des Cache-Puffer-Löschens" bedeutet nicht wirklich den Unterschied zwischen zwei Einstellungen und anderen Artikeln, die diese ebenfalls zusammenführen).

Sam Brightman
quelle
0

Nein, die SSD nimmt nur 2 4K-Schreibvorgänge auf und setzt sie zusammen, um den 8K-Schreibvorgang durchzuführen.

jon
quelle
Wenn Sie einen der 4K-Blöcke überschreiben, wird er mit einem anderen 4K-Block kombiniert, der überschrieben wird, und die beiden veralteten 4K-Blöcke stellen einen Speicherverlust dar. Auf diese Weise schrumpft die SSD langsam mit der Geschwindigkeit, mit der Sie bei o_O darauf schreiben. Eigentlich machen SSD-Controller einen Teil davon, aber sie sammeln auch Müll durch Kopieren. Yuk.
DepressedDaniel