Die Benchmarks sind klar: Solid-State-Laufwerke werden langsamer, wenn Sie sie füllen. Füllen Sie Ihr Solid-State-Laufwerk bis fast zur vollen Kapazität, und die Schreibleistung nimmt dramatisch ab. Der Grund dafür liegt in der Funktionsweise von SSDs und NAND-Flash-Speichern.
Das Ausfüllen des Laufwerks ist eines der Dinge, die Sie mit einem Solid-State-Laufwerk niemals tun sollten. Ein fast volles Solid-State-Laufwerk hat viel langsamere Schreibvorgänge und verlangsamt Ihren Computer.
Leere Blöcke und teilweise gefüllte Blöcke
Wenn Sie eine Datei auf Ihr Solid-State-Laufwerk schreiben, sucht sie nach leeren Blöcken und füllt diese. Das Schreiben in einen leeren Block ist die schnellstmögliche Schreiboperation. Aus diesem Grund unterstützen neue Betriebssysteme (Windows 7 und höher) die TRIM-Funktion, mit der die Daten einer Datei automatisch vom Solid-State-Laufwerk gelöscht werden, sobald Sie die Datei in Ihrem Betriebssystem löschen. Dies funktioniert anders als bei magnetischen Festplatten, bei denen Teile gelöschter Dateien auf der Festplatte herumliegen.
Sie sitzen nicht auf einem Solid-State-Laufwerk herum – TRIM stellt sicher, dass der Block geleert wird, damit die SSD in Zukunft schnell neue Daten in den leeren Block schreiben kann. Das Schreiben über einen bereits geschriebenen Sektor ist genauso schnell wie das Schreiben in einen leeren Sektor auf einer technischen Festplatte, aber eine Solid-State-Festplatte muss einen Block löschen, bevor sie darauf schreibt.
Der NAND-Flash-Speicher schreibt Daten auf 4-KB-Seiten in 256-KB-Blöcken. Um einem teilweise gefüllten Block zusätzliche Seiten hinzuzufügen, muss das Solid-State-Laufwerk den gesamten Block löschen, bevor Daten darauf zurückgeschrieben werden.
Wenn Ihr Solid-State-Laufwerk voll ist, stehen immer weniger leere Blöcke zur Verfügung. An ihrer Stelle stehen teilweise gefüllte Blöcke. Das Solid-State-Laufwerk kann die neuen Daten nicht einfach in diese teilweise gefüllten Blöcke schreiben – dies würde die vorhandenen Daten löschen. Anstelle einer einfachen Schreiboperation muss das Solid-State-Laufwerk den Wert des Blocks in seinen Cache lesen, den Wert mit den neuen Daten ändern und ihn dann zurückschreiben. Beachten Sie, dass das Schreiben einer Datei wahrscheinlich das Schreiben in viele Blöcke umfasst, sodass dies zu einer erheblichen zusätzlichen Verzögerung führen kann.
TRIM konsolidiert teilweise gefüllte Blöcke nicht
Wenn Sie ein Laufwerk voll oder fast voll füllen, werden Sie wahrscheinlich viele teilweise gefüllte Blöcke haben, nachdem Sie Dateien gelöscht haben. Der Befehl TRIM weist nur ein Solid-State-Laufwerk an, Dateidaten zu entfernen, wenn die Datei gelöscht wird. Das Laufwerk wird nicht zu Bereinigungsvorgängen gezwungen.
Mit anderen Worten, füllen Sie ein Solid-State-Laufwerk bis zum Ausfüllen, bevor Sie Dateien löschen, und Sie werden wahrscheinlich viele teilweise gefüllte Blöcke erhalten. Das Laufwerk wird sich nicht die Mühe machen, diese teilweise gefüllten Blöcke zu vollen Blöcken zusammenzufassen und leere Blöcke freizugeben. Das Laufwerk ist weiterhin voll mit teilweise gefüllten Blöcken, und die Schreibleistung wird beeinträchtigt.
Überprovisionierung und Speicherbereinigung
Um zu verhindern, dass Verbraucher ihre Solid-State-Laufwerke füllen und die Leistung stark beeinträchtigt, bemühen sich die SSD-Hersteller, dem entgegenzuwirken.
Solid-State-Laufwerke für Endverbraucher legen häufig etwa 7% ihres gesamten Flash-Speichers beiseite und machen sie für den Benutzer nicht verfügbar. Dies wird als «Überprovisionierung» bezeichnet. Zusätzliche Speicherhardware wird dem Laufwerk hinzugefügt, ist jedoch für den Computer nicht als verfügbarer Speicher sichtbar, den er verwenden kann. Der freie Bereich stellt sicher, dass das Laufwerk niemals vollständig voll werden kann – es wird immer eine freie Kapazität vorhanden sein, um die Schreibleistung stabil zu halten.
Der Controller jedes Solid-State-Laufwerks verfügt über einen Garbage-Collection-Algorithmus, um dieses Problem zu beheben. Wenn das Laufwerk voll ist, sucht es nach teilweise gefüllten Blöcken und beginnt, diese zu konsolidieren, wodurch so viele leere Blöcke wie möglich frei werden. Verschiedene Solid-State-Laufwerke führen diese Vorgänge zu unterschiedlichen Zeiten und Schwellenwerten aus – dies hängt von der Steuerung des Laufwerks ab.
Benchmark-Evidenz
Anandtech führte verschiedene Benchmarks durch mit verschiedenen Laufwerken, um die Beziehung zwischen dem freien Bereich eines Solid-State-Laufwerks und der Konsistenz seiner Schreibvorgangsleistung herauszufiltern. Beim Auffüllen eines leeren Laufwerks stellten sie sehr früh im Prozess eine hohe Schreibleistung und einen deutlichen Rückgang fest, da die Schreibvorgänge das Laufwerk weiterhin füllten.
Durch die Bereitstellung von mehr freiem Bereich auf den Laufwerken blieb die Leistung konstant, da sichergestellt war, dass auf dem Laufwerk immer genügend leere Blöcke bereitstehen sollten.
Sie stellten fest, dass sich die Mindestleistung erheblich verbessert, sobald Sie 25% freie Fläche für diese erreichen [consumer] fährt.» Ihre letzte Empfehlung war, dass Sie „nur etwa 75% von verwenden sollten [your drive’s] Kapazität, wenn Sie ein ausgewogenes Verhältnis zwischen Leistungskonsistenz und Kapazität wünschen. “
Wenn Sie ein Solid-State-Laufwerk haben, sollten Sie versuchen, die Verwendung von mehr als 75% seiner Kapazität zu vermeiden. Kaufen Sie ein größeres Laufwerk mit mehr Speicherplatz als Sie benötigen, und stellen Sie sicher, dass Sie immer eine konsistente Schreibleistung haben. Glücklicherweise werden SSDs allmählich viel billiger, so dass dies nicht mehr so teuer ist wie früher.
Bildnachweis: Musiksortierer bei Wikimedia Commons, Simon Wüllhorst auf Flickr