Übermäßige Bereitstellung einer SSD - hält sie noch?

14

Mehrere (aber nicht sehr neue) Quellen schlagen vor, dass ~ 7% des SSD-Speicherplatzes nicht zugewiesen werden sollten, um den Verschleiß des Laufwerks zu verringern. Ist es noch gültig oder hat sich die Situation geändert?

marmistrz
quelle
Es spielt, wie gesagt, wegen des TRIM-Enable-Problems eine Rolle. Ich vermute, SU passt gut zu dieser Frage, aber jetzt muss es bearbeitet werden, um Linux zu erwähnen!
Sourcejedi
Der freie Speicherplatz ermöglicht eine bessere Leistung. Der Verschleiß von Laufwerken ist überbewertet und möglicherweise ein Mythos. Eine gute SSD kann über 10 Jahre lang rund um die Uhr beschrieben werden. Dies ist möglicherweise ein guter Artikel, den Sie lesen sollten : howtogeek.com/165472/… - In einen leeren Block zu schreiben ist ziemlich schnell, aber in einen teilweise gefüllten Block zu schreiben, bedeutet, den teilweise gefüllten Block zu lesen, seinen Wert zu ändern und ihn dann zu schreiben zurück. Wiederholen Sie dies viele Male für jede Datei, die Sie auf das Laufwerk schreiben, da die Datei wahrscheinlich viele Blöcke verbraucht. ---
So

Antworten:

15

Windows verwendet im Allgemeinen TRIM. Dies bedeutet, dass, solange Sie über X% freien Speicherplatz im Dateisystem verfügen, das Laufwerk X% als nicht zugeordnet ansieht. [*] Eine übermäßige Bereitstellung ist nicht erforderlich.

Ausnahme: In der Vergangenheit haben SSDs mit Sandforce-Controllern / Firmware nach TRIM :( nicht die volle Leistung wiederhergestellt.

Leistungsverluste auf dem gesamten Laufwerk können erheblich sein, und dies mehr als bei einigen anderen Laufwerken. Dies ist mit einer hohen Schreibverstärkung verbunden und erhöht daher den Verschleiß. Quelle: Anandtech Bewertungen.

Es ist also nur dann notwendig, wenn

  • Sie sind sich nicht sicher, ob TRIM verwendet wird. AFAIK ist unter Linux immer noch nicht standardmäßig aktiviert, da bei einigen alten und sich schlecht verhaltenden Laufwerken Leistungsprobleme auftreten.
  • ODER Sie befürchten, ein Sandforce-Laufwerk zu füllen (und der Inhalt kann vom Smart Controller nicht komprimiert werden).

Es ist nicht allzu schwer, TRIM unter Linux zu aktivieren, und es ist unwahrscheinlich, dass Sie Probleme bemerken.

Glücklicherweise stellen einige der beliebtesten Marken ihre eigenen Controller her. Die Sandforce-Controller sind nicht mehr so ​​beliebt wie früher. Sandforce-Probleme lassen mich skeptisch gegenüber diesem speziellen "intelligenten" Controller-Design werden, das für seine Zeit sehr aggressiv war. Entschuldigung an Sandforce, aber ich habe keine Referenz für die genauen betroffenen Controllermodelle.


[*] Dateisysteme mögen auch viel freien Speicherplatz, um die Fragmentierung zu reduzieren. TRIM ist also großartig, weil Sie nicht zwei Sicherheitsabstände addieren müssen, der gleiche freie Speicherplatz hilft beiden :). Das Laufwerk kann den nicht zugewiesenen Speicherplatz nutzen, um die Leistung zu verbessern und hohen Verschleiß zu vermeiden.

sourcejedi
quelle
Ist es möglich, einen Sandforce-Controller zu erkennen, wenn eine SSD installiert ist?
Marmistrz
Es gibt keine Standardanzeige oder einen Test, der mir bekannt ist. Sie müssen wissen, was das Laufwerk ist und versuchen, es nachzuschlagen. Ich sehe nur eine "Modellnummer", z. B. in GNOME-Disks wie "M4-CT128M4SSD2", deren Zuordnung möglicherweise umständlich ist. Entschuldigung nochmal. Ich glaube, Samsung verwendet eigene Controller und Crucial / Micron verwenden Marvell. OCZ / Toshiba haben verschiedene Controller verwendet, darunter Sandforce.
Sourcejedi
Dies setzt voraus , dass Sie tatsächlich haben freien Speicherplatz auf dem Dateisystem, nicht wahr? : D
Endolith
Geben Sie bitte genau an, auf welchen Teil Sie antworten. Dies war vor über einem Jahr. Ich denke, Sie meinen "[hypothetisch] ich habe keine Disziplin, muss mein System gegen anhaltenden Missbrauch zurückschieben und habe keine Software, um einen Alarm für hohe Wasserstände zu setzen". Dies ist eine durchaus berechtigte Kritik, auch wenn sie von jemandem interessant ist, der in erster Linie über eine Überversorgung nachdenken würde.
Sourcejedi
7

Moderne SSD-Controller sind so intelligent, dass eine Überprovisionierung im Alltag normalerweise nicht erforderlich ist. Es gibt jedoch immer noch Situationen, vor allem in Rechenzentrumsumgebungen, in denen Überprovisionierung empfohlen wird. Um zu verstehen, warum Überprovisionierung nützlich sein kann, müssen Sie wissen, wie SSDs funktionieren.

SSDs müssen beim Schreiben von Daten die Einschränkungen des Flash-Speichers berücksichtigen

SSDs verwenden einen Speichertyp, der als NAND-Flash-Speicher bezeichnet wird . Im Gegensatz zu Festplatten können NAND-Zellen, die Daten enthalten, nicht direkt überschrieben werden. Das Laufwerk muss vorhandene Daten löschen, bevor es neue Daten schreiben kann. Während SSDs Daten in Seiten mit einer Größe von normalerweise 4 KB bis 16 KB schreiben , können sie außerdem nur Daten in großen Gruppen von Seiten löschen, die als Blöcke bezeichnet werden. In modernen SSDs sind dies normalerweise mehrere Hundert KB bis mehrere MB.

NAND hat auch eine begrenzte Schreibdauer . Um zu vermeiden, dass Daten unnötig überschrieben werden, um Blöcke zu löschen, und um sicherzustellen, dass kein Block eine unverhältnismäßige Anzahl von Schreibvorgängen erhält , versucht das Laufwerk, Schreibvorgänge, insbesondere kleine zufällige Schreibvorgänge, auf verschiedene Blöcke zu verteilen. Wenn die Schreibvorgänge alte Daten ersetzen, werden die alten Seiten als ungültig markiert. Sobald alle Seiten in einem Block als ungültig markiert sind, kann das Laufwerk sie löschen, ohne dass gültige Daten neu geschrieben werden müssen.

SSDs benötigen freien Speicherplatz, um optimal zu funktionieren, aber nicht jede Arbeitslast trägt zur Aufrechterhaltung des freien Speicherplatzes bei

Wenn auf dem Laufwerk nur noch wenig oder kein freier Speicherplatz vorhanden ist, können keine Schreibvorgänge verteilt werden. Stattdessen muss das Laufwerk Blöcke sofort löschen, wenn Schreibvorgänge an das Laufwerk gesendet werden, und alle gültigen Daten in diesen Blöcken müssen in andere Blöcke geschrieben werden. Dies führt dazu, dass mehr Daten in das NAND geschrieben werden, als an das Laufwerk gesendet werden. Dieses Phänomen wird als Schreibverstärkung bezeichnet . Die Schreibverstärkung ist bei zufälligen, schreibintensiven Workloads wie der Online-Transaktionsverarbeitung (OLTP) besonders ausgeprägt und muss auf ein Minimum beschränkt werden, da dies zu einer verringerten Leistung und Ausdauer führt.

Um die Schreibverstärkung zu verringern, unterstützen die meisten modernen Systeme einen Befehl namens TRIM , der dem Laufwerk mitteilt, welche Blöcke keine gültigen Daten mehr enthalten, damit sie gelöscht werden können. Dies ist erforderlich, da das Laufwerk andernfalls davon ausgehen müsste, dass die vom Betriebssystem logisch gelöschten Daten noch gültig sind, was die Fähigkeit des Laufwerks beeinträchtigt, ausreichenden freien Speicherplatz beizubehalten.

TRIM ist jedoch manchmal nicht möglich, z. B. wenn sich das Laufwerk in einem externen Gehäuse befindet (die meisten Gehäuse unterstützen TRIM nicht) oder wenn das Laufwerk mit einem älteren Betriebssystem verwendet wird. Darüber hinaus werden Schreibvorgänge bei sehr intensiven Random-Write-Workloads über große Bereiche des zugrunde liegenden NAND verteilt, was bedeutet, dass ein erzwungenes Umschreiben von Daten und eine damit verbundene Schreibverstärkung auftreten kann, selbst wenn das Laufwerk nicht annähernd voll ist.

Moderne SSDs verfügen über eine deutlich geringere Schreibverstärkung als ältere Laufwerke. Einige Workloads können jedoch weiterhin von Überprovisionierung profitieren

Die frühesten SSDs hatten eine viel weniger ausgereifte Firmware, die dazu neigte, Daten viel häufiger als nötig neu zu schreiben. Frühe Indilinx- und JMicron-Controller ( der JMF602 war berüchtigt für stotternde und abgrundtiefe Zufallsschreibeigenschaften ) litten unter extrem hoher Schreibverstärkung unter intensiven Zufallsschreib-Workloads, die manchmal das 100-fache überstiegen. (Stellen Sie sich vor, Sie schreiben mehr als 100 MB Daten in das NAND, wenn Sie nur versuchen, 1 MB zu schreiben!). Neuere Controller mit höherer Rechenleistung, verbesserten Flash-Management-Algorithmen und TRIM-Unterstützung sind in der Lage, diese Situationen besser zu bewältigen, obwohl bei modernen SSDs durch hohe Arbeitslasten mit wahlfreiem Schreiben immer noch eine Schreibverstärkung von mehr als dem 10-fachen verursacht werden kann .

Überprovisionierung bietet dem Laufwerk einen größeren Bereich an freiem Speicherplatz, um zufällige Schreibvorgänge zu verarbeiten und ein erzwungenes Überschreiben von Daten zu vermeiden. Alle SSDs sind zumindest teilweise überlastet. Einige nutzen nur den Unterschied zwischen GB und GiB , um etwa 7% des verfügbaren Speicherplatzes für das Laufwerk bereitzustellen, während andere eine höhere Überversorgung aufweisen, um die Leistung für die Anforderungen bestimmter Anwendungen zu optimieren. Beispielsweise kann eine Unternehmens-SSD für schreiblastige OLTP- oder Datenbank-Workloads 512 GB physisches NAND und eine angekündigte Kapazität von 400 GB aufweisen, anstatt der 480 bis 512 GB, die für Consumer-SSDs mit ähnlichen Mengen an NAND typisch sind.

Wenn Ihre Arbeitslast besonders hoch ist oder wenn Sie das Laufwerk in einer Umgebung verwenden, in der TRIM nicht unterstützt wird, können Sie den Speicherplatz manuell überprovisionieren, indem Sie das Laufwerk partitionieren, sodass ein Teil des Speicherplatzes nicht verwendet wird. Beispielsweise können Sie eine 512-GB-SSD auf 400 GB partitionieren und den verbleibenden Speicherplatz nicht zuweisen. Das Laufwerk verwendet den nicht zugewiesenen Speicherplatz als Ersatzspeicherplatz. Beachten Sie jedoch, dass dieser nicht zugewiesene Speicherplatz gekürzt werden muss, wenn er zuvor beschrieben wurde. Andernfalls hat dies keinen Vorteil, da das Laufwerk den Speicherplatz als belegt ansieht. (Partitionierungsdienstprogramme sollten hierfür intelligent genug sein, aber ich bin mir nicht 100% sicher. Siehe "Trimmt Windows nicht partitionierten (unformatierten) Speicherplatz auf einer SSD?" )

Wenn Sie nur ein normaler Verbraucher sind, ist eine Überprovisionierung im Allgemeinen nicht erforderlich

In typischen Consumer-Umgebungen, in denen TRIM unterstützt wird, ist die SSD zu weniger als 70-80% voll und wird nicht ständig mit zufälligen Schreibvorgängen belegt. Eine Schreibverstärkung ist in der Regel kein Problem, und eine Überprovisionierung ist im Allgemeinen nicht erforderlich.

Letztendlich werden die meisten Verbraucher nicht annähernd genug Daten auf die Festplatte schreiben, um das NAND innerhalb der beabsichtigten Lebensdauer der meisten SSDs zu verschleißen, selbst bei hoher Schreibverstärkung.

bwDraco
quelle
1

Die Größe des zusätzlichen Speicherplatzes ist bei den SSD-Laufwerksmodellen sehr unterschiedlich, im Allgemeinen gilt dies jedoch weiterhin.

Tomasz Klim
quelle
Haben Sie eine Referenz dafür?
Léo Lam
Meinen Sie Referenz für ein bestimmtes Laufwerk? Viele Laufwerke (nicht nur SSDs) haben öffentliche technische Referenzen, aber leider habe ich keine Zeit zum Suchen. Wenn Sie jedoch an einer allgemeinen Referenz interessiert sind, überprüfen Sie diese: samsung.com/global/business/semiconductor/minisite/SSD/…
Tomasz Klim
1
Ja, ich habe mich gefragt, ob dies immer noch für alle Laufwerke oder nur für bestimmte Modelle oder Marken zutrifft, da die andere Antwort darauf hinweist, dass eine Überversorgung auf neueren Laufwerken nicht mehr erforderlich ist.
Léo Lam
Die andere Antwort ist nicht genau richtig. Tatsächlich hatten Laufwerke mit Sandforce-Controllern viel zusätzlichen Platz. Das ist völlig richtig. Aber auch jeder andere SSD-Controller benötigt zusätzlichen Speicherplatz, nur nicht so viel. Da wird sich das wohl nicht ändern.
Tomasz Klim
1
Aus dem Dokument für Samsung SSD: "Es besteht immer die Möglichkeit, zusätzlichen Speicherplatz für eine noch weiter verbesserte Leistung (z. B. unter anspruchsvollen Workloads) manuell bereitzustellen." anspruchsvolle Arbeit ".
Sourcejedi