Warum Sie unter Windows 8 und 10 die Laufwerksoptimierung für SSDs NICHT abschalten sollten

//EN: This article is in parts based on information from an excellent blog post of  Scott Hanselman. For english original see: hanselman.com.

In zahlreichen Foren lese ich immer wieder die Frage „Was sollte ich beim Umstieg auf eine SSD beachten?“ gefolgt von Zahlreichen gut gemeinten Ratschlägen.

Neben dem Deaktivieren von SuperFetch und PreFetch (worauf ich evtl. in einem weiteren Artikel eingehe) ist auch immer der Tipp dabei, die Datenträgeroptimierung („Defragmentierung“) zu deaktivieren. Ferner schalten sogar einige, den SSDs beiliegende Programme, wie zB. „Samsung Magician“ die Funktion ebenfalls ab.

Nun verhält es sich mit diesem Tipp wie mit allen Informationen in der IT-Welt: Das, was gestern noch richtig war, stimmt heute unter Umständen nicht mehr. So auch dieser Mythos. Primär hängt die richtige Antwort auf die Frage nämlich vom verwendeten Betriebssystem, also der Windows Version, ab.

Ältere Betriebssysteme – alles vor Windows 7 (also Vista, XP, 2000 usw.) kennen „SSDs“ gar nicht, und wissen daher auch nicht, wie diese zu behandeln sind. Windows 7, erkennt SSDs unter Umständen (siehe hier) und deaktiviert dann den Windows Defragmentierungsdienst für diese Laufwerke. Wird die SSD von Windows 7 nicht erkannt, muss der Anwender in der Tat den Defragmentierungsdienst entsprechend anpassen.

Seit Windows 8 kann das Betriebssystem mit SSDs und deren technischen Besonderheiten umgehen. Microsoft hat daher die Funktion nun in „Datenträger Optimieren“ umbenannt.

Im folgenden möchte ich gern eine ausführliche Antwort auf die Frage nach dem Sinn bzw. Unsinn der Defragmentierung geben. Leser, die nur die Antwort auf die Frage: „Was ist nun bei Windows 8 anders?“ interessiert: Bitte ganz nach unten schauen.

Was ist Defragmentieren eigentlich?

von hobvias sudoneighm from Edmonton, Canada (book shelf project 1 ~ striatic {notes}) [CC BY-SA 2.0 (http://creativecommons.org/licenses/by-sa/2.0)], via Wikimedia Commons
Ein „fragmentiertes“ Bücherregal von hobvias sudoneighm, Edmonton, Canada [CC BY-SA 2.0], via Wikimedia Commons
Speichert Ihr PC Daten auf einen Datenträger müssen Sie sich das ungefähr so vorstellen, als ob Sie unter enormen Zeitdruck versuchen einen Brockhaus Band (oder für die jüngeren Leser alle 7 Harry Potter Romane inkl. der 3 Begleitbücher) in ein sehr großes, schon recht volles Bücherregal zu bekommen. Wenn in Ihrem Bücherregal nur noch ein Fach mit Platz für 5, eines für 3 und ein weiteres für 2 Bücher frei ist – Sie aber 10 Bücher unterbringen wollen – müssen Sie die Bücher zwangsläufig verteilen. (In diesem Falle „fragmentieren“ Sie dann den Brockhaus Band, oder ihre Harry Potter Kollektion.) – Da Sie unter Zeitdruck arbeiten – was ein PC stets tut, da der Anwender ja nicht warten soll – kommen Sie nicht dazu, das Bücherregal erst aufzuräumen und dann die Bücher nebeneinander zu stellen.

Da Ihr Bücherregal wie schon gesagt sehr, sehr groß ist, und die freien Regalplätze nicht nebeneinander waren, tragen Sie sich zudem in einem Inhaltsverzeichnis ein, wo Sie die Bücher hin gestellt haben, um sie schneller wieder zu finden. Dieses Inhaltsverzeichnis können Sie auch nutzen, um noch freie Regalplätze ausfindig zu machen. Dieses „Inhaltsverzeichnis“ nennt sich bei Computern mit Windows Betriebssystem FAT (File Allocation Table) oder MFT (Master File Table) und ist bestandteil des Dateisystems (zB. FAT32, exFAT oder NTFS) – es dient dort genau dem gleichen Zweck, wie oben skizziert: Finden von Dateien und freien Ablageplätzen auf dem Datenträger. Entscheidend dabei ist, das dieses Inhaltsverzeichnis vom Betriebssystem und nicht vom Datenträger selbst geführt wird. [Genau genommen führen moderne Festplatten und SSDs ein zusätzliches, eigenes Inhaltsverzeichnis. Siehe dazu weiter unten „TRIM“.]

Wenn Sie nun später etwas mehr Zeit haben, können Sie  das Bücherregal aufräumen. Jetzt sorgen Sie natürlich dafür, dass alle Bücher des Bandes bzw. der Sammlung möglichst nahe beieinander stehen – nach Möglichkeit im gleichen Fach. Im „Inhaltsverzeichnis“ tragen Sie nun auch die neuen Reglplätze ein – und markieren die frei gewordenen wieder als leer. So können Sie dann schneller auf alle Bücher auf einmal zugreifen, und wissen, wo Sie beim nächsten mal, noch Bücher unter bringen können. (Sie haben nun gerade das Bücherregal „defragmentiert“ und damit die Zugriffszeit auf den kompletten Band verbessert.)

Ordner der mehr Platz verbraucht als nötig
Ordner der mehr Platz verbraucht als nötig

[Logistisch gesehen passen in ein Fach unter Umständen mehrere Bücher. Bei einem Datenträger ist das ähnlich. Mehrere Sektoren, die die kleinste adressierbare Speichereinheit darstellen, werden zu sog. Clustern (auch Zuordnungseinheiten, in unserem Falle einem „Fach“) zusammen gefasst. Pro Zuordnungseinheit können mehrere Dateien – oder Dateibestandteile („Bücher“) abgelegt werden. Daher unterscheidet Windows beim Defragmentieren noch nach der Größe der „Bücher“ und stapelt diese dann optimiert in die einzelnen „Fächer“, sodass immer möglichst viele Bücher in jeweils einem Fach unter kommen. Würde man dies nicht machen, wäre der Datenträger irgendwann voll, obwohl die Datenmenge die Kapazität der Festplatte tatsächlich noch nicht erreicht hat. Rechts sehen Sie in einem Screenshot einen Ordner, der ungünstig abgelegt ist, und damit mehr Platz einnimmt, als er eigentlich verbraucht.]

Warum sollten Festplatten defragmentiert werden?

Schreib-/Leseköpfe in einer Festplatte von William Warby from London, England (Hard Drive) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons
Schreib-/Leseköpfe in einer Festplatte von William Warby, London, England [CC BY 2.0], via Wikimedia Commons

Eine Festplatte kann – bedingt durch die Konstruktion – Daten immer nur an/von einer Stelle schreiben/laden. [Genau genommen sind in einer Festplatte mehrere sich drehende Platten untergebracht, die jeweils auf der Ober- und Unterseite beschrieben werden können. Pro Plattenhälfte gibt es, vergleichbar mit einem Plattenspieler, ein Arm, der die Schreib-/Leseköpfe an die benötigte Stelle bewegt. Diese Arme sind starr miteinander verbunden, dh. alle Schreib-/Leseköpfe sind immer an der gleichen Stelle auf der jeweiligen Platte – und nur an dieser Stelle können dann die Daten gelesen / geschrieben werden.] – Ist nun eine einzelne Datei über mehrere Platten an verschiedensten Stellen verteilt, dauert das Einlesen der Datei entsprechend lange, da die Schreib-/Leseköpfe alle Ablageorte nacheinander „anfahren“ müssen. Gleiches gilt für das Schreiben der Datei, wenn diese nicht mehr in einem Stück abgelegt werden kann.

Durch das Defragmentieren werden die Daten auf der Platte so abgelegt, dass diese nach Möglichkeit „in einem Rutsch“ gelesen werden können. Zum anderen wird der freie Speicherplatz so optimiert, dass neue Daten möglichst in einem Stück abgelegt werden können.

Warum sollten SSDs eigentlich nicht defragmentiert werden?

76coolio at the English language Wikipedia
Geöffnete SSD, zu sehen sind die einzelnen Speicherchips. Foto von 76coolio at the English language Wikipedia [CC-BY-SA-3.0], via Wikimedia Commons

Eine SSD funktioniert nicht mechanisch. Die Daten sind auf mehreren Chips im Inneren der SSD gespeichert. Diese Chips haben zwei entscheidende Vorteile:

  • Zum einen können Sie wesentlich schneller die Daten von einer bestimmten Stelle lesen bzw. an eine bestimmte Stelle schreiben.
  • Zudem können Sie das voneinander unabhängig an verschiedenen Stellen parallel machen.

Daher hat die Fragmentierung bei einer SSD nicht die oben für Festplatten beschriebenen Nachteile was die Lese-/Schreibgeschwindigkeit angeht.

Allerdings ist es nun so, dass eine SSD bedingt durch den Aufbau der Speicher-Chips nicht beliebig viele Schreibvorgänge pro Speicherzelle ermöglicht. (Genauer gesagt, ist das Löschen einer bereits belegten Speicherzelle nicht beliebig oft möglich, da mit jedem Löschvorgang das Material der Speicherzelle abgenutzt wird. Weiteres siehe: Wikipedia.)  Die SSD „schützt“ sich vor der übermäßigen Abnutzung einzelner Speicherzellen, indem Daten beim Schreiben möglichst gleichmäßig über alle Speicherzellen verteilt werden. Dieses Vorgehen nennt man Wear-Leveling. Da dies im Datenträger, also der SSD, abläuft, bekommt das Betriebssystem davon nichts mit. Durch ein regelmäßiges Umsortieren (Defragmentieren) der Daten durch das Betriebssystem würden die Speicherzellen häufiger als nötig gelöscht und erneut beschrieben ohne einen positiven Effekt zu erzielen.

Da alte Betriebssysteme gar nicht wissen, was eine SSD ist, wissen diese auch nicht, dass eine SSD durch das permanente Defragmentieren auf Dauer schneller verschleißen würde. Daher muss das zyklische Defragmentieren dort manuell deaktiviert oder zumindest wie für Windows 7 geschrieben kontrolliert und ggfs. abgeschaltet werden.

[Das durch das Abschalten der Defragmentierung das oben beschriebene Kapazitätsproblem (Nicht vollständig gefüllte Cluster) auftritt, wird in dem Falle akzeptiert, um die Lebensdauer der SSD zu erhöhen.]

Was ist eigentlich TRIM, und wofür braucht eine SSD das?

Im Zusammenhang mit SSDs und der optimalen Verwendung fällt auch immer wieder der Begriff „TRIM“-Unterstützung. Wie gerade beschrieben, verteilt eine SSD die Schreiboperationen gleichmäßig über alle zur Verfügung stehenden freien Speicherzellen. Dazu muss eine SSD allerdings auch erst einmal wissen, dass eine bereits benutzte Speicherzelle evtl. wieder frei ist. Was ziemlich simpel klingt, ist technisch natürlich wieder ein Problem. Denn: Löscht das Betriebssystem eine Datei, so wird der von der Datei eingenommene Speicherplatz im „Inhaltsverzeichnis“ des Dateisystems einfach wieder als frei markiert. Die tatsächlichen Ablageorte bleiben weiterhin mit den Daten gefüllt und werden erst bei erneuter Nutzung überschrieben. [Das ist auch der Grund, warum auf „normalem Wege“ gelöschte Dateien von einer Festplatte noch mit relativ geringem Aufwand wiederhergestellt werden können.]

Da das „Inhaltsverzeichnis“ vom Betriebssystem (genauer dem Dateisystem) geführt wird, weiß der Datenträger selbst also nicht, welcher seiner Bereiche voll oder leer ist. Bei Festplatten war und ist dies auch nicht weiter relevant, da die Sektoren einer Festplatte verglichen mit den Speicherzellen einer SSD fast unbegrenzt oft beschrieben werden können und daher auch nicht zwingend umverteilt werden müssen. Außerdem können die Sektoren einer Festplatte direkt mit neuen Werten „überschrieben“ werden, ohne diese zuvor explizit löschen zu müssen.

[Der Vollständigkeit halber sei gesagt, dass auch bei Festplatten einzelne Sektoren beschädigt bzw. abgenutzt werden können. Daher gibt es auch in modernen Festplatten ein „internes“ Inhaltsverzeichnis, welches von der Festplatte genutzt wird, um Daten, die auf einen Defekten Sektor geschrieben werden sollen „on the fly“ – also für das Betriebssystem unsichtbar – an eine andere, für genau diesen Fall reservierte, Stelle umzuleiten, und dann auch entsprechend wieder zu finden. Hier ließt man dann häufig von „Reallocated Sectors„. Da die defekten Sektoren idR. aber irreparabel sind, werden diese aus dem „Umleiteverzeichnis“ nicht wieder entfernt.]

Für eine SSD hingegen, die wegen des Wear-Levelings selbstständig entscheiden muss, wo Sie die Daten ablegt, und die eine bereits benutzte Zelle erst löschen muss, bevor sie diese erneut beschreiben kann ist es hingegen durchaus relevant zu wissen, welche Speicherzellen frei sind oder wieder frei werden. Aufgrund der Tatsache, dass die SSD keinen Zugriff auf das „Inhaltsverzeichnis“ des Dateisystems hat, führt eine SSD ein zusätzliches internes Inhaltsverzeichnis, in dem sie ua. markiert, welche Speicherzelle belegt ist, welche gelöscht wurde und welche noch frei ist.

Da das tatsächliche Löschen nun aber nur im Inhaltsverzeichnis des Dateisystems erfolgt, muss die SSD auf andere Weise heraus bekommen, welche Speicherzellen frei geworden sind. Prinzipiell merkt sie das natürlich spätestens dann, wenn das Betriebssystem Daten an an eine bestimmte Stelle schreiben will. Diese muss ja aus Sicht des Betriebssystems leer gewesen sein. Waren die gewünschten Zellen bereits in Verwendung, muss die SSD diese Zellen zunächst löschen, um sie danach erneut zu beschreiben. Die Vorgänge Löschen + Schreiben sind in Kombination natürlich langsamer als das einfache Beschreiben einer noch leeren Speicherzelle. Dieser Umstand wird von Anwendern von SSDs bzw. Systemen ohne TRIM Unterstützung als zunehmende Verlangsamung bei Schreiboperationen wahrgenommen – je voller die SSD ist, desto langsamer wird sie, da nur das beschreiben von leeren Zellen schnell ist.

Daher ist es bei SSDs gängige Praxis, die Zellen, die als belegt galten und nun erneut beschrieben werden sollen nur als „zu löschen“ zu markieren, und die Daten stattdessen in andere, bislang weniger häufig genutzte freie Zellen zu schreiben. Wenn die SSD dann einmal nichts zu tun hat (idle ist, wie man so schön sagt), löscht Sie die als „zu löschen“ markierten Zellen wirklich und markiert sie als frei. Dieses Vorgehen ist ein Bestandteil der sog. „Garbage Collection„.

Effektiver wäre es natürlich, wenn das Betriebssystem der SSD gleich mitteilen würde, welche Sektoren durch das Löschen bzw. Verschieben von Daten frei geworden sind und dies nicht nur in seinem eigenen Inhaltsverzeichnis vermerken würde. Dazu wurde der TRIM Befehl eingeführt (unter Windows ab Version 7). Mit dessen Hilfe kann das Betriebssystem einem SSD Datenträger mitteilen, welche Sektoren es nicht mehr benötigt. Die SSD kann diese daraufhin bereits vorzeitig löschen und später erneut belegen. [Mithilfe des TRIM Befehls kann eine SSD die internen Datenstrukturen – die Erasable Blocks – zusätzlich besser optimieren, was zu einer weiter reduzierten Schreibtätigkeit und damit geringerem Verschleiß führt. Das tiefer auszuführen würde jedoch jetzt zu weit gehen.]

Ein gewisser Nachteil des TRIMmings ist allerdings, dass nun mit jedem Löschprozess weitere Befehle – abhängig von der Größe der Datei an den Datenträger geschickt werden müssen. Gerade bei großen Datenmengen müssen viele Sektoren als gelöscht gemeldet und von der SSD verarbeitet werden, was Datenträger-abhängig wiederum zu Verzögerungen führen kann. Das Problem löst das Betriebssystem nun so, dass es sich in einer Liste im Hauptspeicher „merkt“, welche Bereiche freigegeben werden müssen. Die sog. TRIM-Queue. Dies Wartschlange wird abgearbeitet, sobald keine Schreib-/Leseoperationen auf der SSD mehr anstehen, um diese nicht auszubremsen.

[Ein technischer Super-Gau wäre gewissermaßen eine Defragmentierung des Dateisystems auf einer SSD unter einem System auszuführen, welches den TRIM Befehl nicht unterstützt: Das Ergebnis wären zahlreiche umsortierte und nicht korrekt freigegebene Datenblöcke. Die SSD wird also langsamer und verschleißt schneller.]

Was ist nun in Windows 8 (und neuer) anders?

Mit Windows 8 hat Microsoft eine bessere Behandlung von SSDs im Betriebssystemkern untergebracht. Das System erkennt die SSD nicht nur als solche (Siehe Screenshot, Spalte „Medientyp“) sondern weiß auch, wie diese sinnvoll zu optimieren sind.

Öffnen der Datenträgeroptimierung unter Windows 10
Öffnen der Datenträgeroptimierung unter Windows 10

Die bereits beschriebene TRIM-Queue ist unter Windows nicht unendlich lang. Stehen mehr Löschoperationen an, als in diese Schlange hinein passen, werden neue Einträge unter Umständen verworfen. Die SSD bekommt also nicht immer mit, welche Bereiche frei gegeben wurden. Es kann außerdem vorkommen, dass nicht alle TRIM Befehle überhaupt in der SSD ankommen, oder dort verarbeitet werden – zB. bei einem Stromausfall. Um das Problem zu beheben, kann das Betriebssystem in regelmäßigen Abständen ein sogenanntes „Retrimming“ durchführen, bei dem es alle freien Sektoren aus dem Inhaltsverzeichnis des Dateisystems an die SSD meldet.

Die Windows 10 Datenträgeroptimierung
Die Windows 10 Datenträgeroptimierung

Genau dies ist seit Windows 8 in Form der Laufwerksoptimierung umgesetzt. Für Festplatten wird wie schon unter Windows Vista und 7 wöchentlich eine Defragmentierung durchgeführt. Bei SSDs wird ein regelmäßiges Retrimming ausgeführt, um sicher zu stellen, dass alle nicht belegten Zellen wieder frei gegeben werden. Das Retrimming läuft allerdings kontrolliert ab, damit die TRIM-Queue nicht überfüllt wird.

Zudem wird bei aktivem Volumen-Schattenkopie-Dienst einmal monatlich auch eine SSD defragmentiert, um die Performance der Schattenkopien hoch zu halten. Das löst parallel auch das oben angesprochene, durch die Fragmentierung entstehende Kapazitätsproblem.

Zusammenfassung

Zusammenfassend lässt sich also sagen, dass für alle Systeme ab Windows 8 die Datenträgeroptimierung für SSD nicht ab, sondern angeschaltet werden sollte, da das System die Laufwerkstypen unterscheidet und daraufhin entsprechend unterschiedlich behandelt.

Deaktiviert man die Optimierung für SSDs, läuft man Gefahr, dass das System auf Dauer langsamer wird. Bei aktiver Optimierung wird sicher gestellt, dass alle nicht mehr verwendete Bereiche ordnungsgemäß freigegeben werden. Außerdem werden die Daten monatlich optimal angeordnet. Dadurch bleiben natürlich in geringerem Maße die oben erwähnten Verschleißerscheinungen an den Speicherchips der SSD.

Windows ab Version 8 versucht hier also einen Mittelweg zwischen Performance und Verschleiß zu beschreiten. Was den Verschleiß angeht, muss man wissen, dass moderne SLC SSDs bereits jetzt über 100’000 Schreibzyklen pro Speicherzelle aushalten (ältere MLC SSDs ca. 10’000 Zyklen). Daher ist gegen eine gelegentliche Defragmentierung moderner SSDs im Zuge der Laufwerksoptimierung nichts einzuwenden. Um Datenverlust vorzubeugen sollten Sie ohnehin auf eine zusätzliche Backuplösung setzen.

Da die Preise für SSDs derzeit rapide fallen, ist auch ein Austausch der SSD nach wenigen Jahren – mit dem dann auch höhere Kapazitäten und verbesserte Zugriffszeiten verbunden sein dürften – recht wahrscheinlich, sodass man diese nun nicht übermäßig schonen muss.

Bei einem Upgrade auf Windows 10 wird die Datenträgeroptimierung im übrigen automatisch für alle SSD Laufwerke wieder eingeschaltet.

Gefahr ist weiterhin nur dann im Verzug, wenn das System eine SSD als normale Festplatte erkennt und auch TRIM nicht aktiviert. Das können Sie im oben gezeigten Dialog einfach nachvollziehen.

Aus meiner Sicht ist jedoch noch Luft nach oben: Es bleibt zu hoffen, dass in Zukunft die Dateisysteme besser auf die Arbeitsweise von SSDs abgestimmt werden. – Ganz ohne die doppelte Buchführung wäre es noch effizienter.

12 Gedanken zu „Warum Sie unter Windows 8 und 10 die Laufwerksoptimierung für SSDs NICHT abschalten sollten

  1. Ich bin über den Satz „Wird die SSD von Windows 7 nicht erkannt, muss der Anwender in der Tat den Defragmentierungsdienst entsprechend anpassen.“ gestolpert. Woran erkennt man als Nutzer ob Windows 7 die SSD als solche erkannt hat oder nicht. Wenn die SSD nicht erkannt wird, steht unter Medientyp was anderes als „Solid-State-Laufwerk“?

    1. Ja, wie Sie ja schon heraus gefunden haben. (Die Antwort dient nur als Referenz für andere Leser): Wird die SSD Nicht erkannt, steht dort „Festplatte“ und nicht „Solid State Laufwerk“.

  2. Das ist, für meine Zwecke, inhaltlich das beste was ich im Internet zu diesem Thema gefunden habe. Dazu noch in einer Art und Weise geschrieben, die es ermöglicht dem Artikel bis zum Ende zu folgen, ohne einen Kollaps der Synapsen zu riskieren. Danke dafür

  3. Danke für den Beitrag. Zusatzfrage: wie gehe ich bei Windows10 vor, wenn ich schauen will, ob diese Funktion eingeschaltet ist? und wo finde ich den Befehl, der früher defragmentieren hiess? ist es sinnvoll, ein Zusatzprogramm zu installieren wie auslogics diskdefrag oder macht Windows10 alles selber? Danke und freundliche Grüsse Nika

    1. Hi,
      Zusatzprogramme machen keinen Sinn. Windows 10 macht das alles selbst.
      Die Einstellungen des Tools finden sich im Arbeitsplatz („Dieser PC“) im Kontextmenü (Rechtsklick) unter „Eigenschaften“ beim Entsprechenden Laufwerk.
      (Habe oben im Beitrag noch ein Bild eingefügt.)

  4. 1. Defragmentieren schadet einer SSD nicht. Das trifft hoechstens auf SSDs der ersten Generation zu. Alle modernen SSDs, wie z.B. die x25 m von Intel, haben damit ueberhaupt kein Problem. Es wird, je nach Hersteller, nicht empfohlen. Das dient aber eher dem Schutz vor DAUs. Vor allem ist es eher eine Frage, ob es sich lohnt.

    Da sind andere Sachen viel Schlimmer, die immer noch gemacht werden: Falsches Partition Alignement (Herstellertools zum Migrieren der Windows Installation auf SSDs machens durch die Bank falsch) oder „Sicheres Loeschen von Dateien“, welches schon bei HDDs ueberfluessig war und bei SSDs gar nichts bringt, ausser man fuehrt ein entsprechendes Kommando auf der SSD aus, damit sie sich sicher loescht. (Zerofill)

    2. Was beim Vorgang des Defragmentieren bei SSDs nicht unbedingt notwendig ist, ist das Konsolidieren. In diesem Beitrag ist das leider ausgelassen/ falsch dargestellt. Das Zusammenfuegen von einer Datei, die in einzelnde Elemente aufgesplittet wurde (Aus Sicht des Dateissystems), ist Sinnvoll. Zum Einen kann die SSD mit einer hoeheren Wahrscheinlichkeit die Daten als Stream in einem vollstaendigen Block auslesen, statt mehrere Pages durchsuchen zu muessen. Als Zweites ist eben die MFT/ FAT usw. auch an dem Unternehmen beteiligt. Und wenn eine Datei am Stueck vorliegt, ist es weniger CPU und I/O-lastig, die Datei von der SSD zu holen. Eine SSD hat immer noch eine minimale Zugriffszeit. Das Springen zwischen Pages kostet mehr Zeit, als die Daten aus einem Block auszulesen.

    Warum ist es besser, wenn die SSD aus einem Block komplett lesen kann? Weil sie intern wie ein RAID0 arbeitet. Diese Pages werden mit meheren Lanes gleichzeitig angesprochen. Koennen alle Lanes gleichzeitig die angefragten Daten auslesen, ist die Performance am Hoechsten. Je nach Controller der SSD koennen einzelnde Lanes auch andere Speicherzellen auslesen, funktioniert aber nur, wenn diese Lane frei ist. Performance bringt das auch nicht in jedem Fall. Eher versucht man so, „zufaellige“ Zugriffe mit 4 – 16K zu beschleunigen. Große Dateien werden davon nicht schneller geladen. Deswegen sollten Dateien moeglichst komplett am Stueck auf einer SSD liegen. Damit ist die Wahrscheinlichkeit hoeher, das sie innerhalb einer Page liegen und die SSD dann einfach nur komplett zur naechsten Page huepfen kann, ohne wild einzelnde Pages nach Fragmenten abzugrasen.

    Und auch wenn man von außen nicht weiß, wo die Daten genau liegen: Intern sind die Bloecke der SSD so organisiert, das sie diese linear auslesen kann. Diese Bloecke sind 256KB, teilweise auch 512KB+ groß und werden zufaellig verschachtelt. Das Wear-Leveling organisiert diese Bloecke entsprechend. Dadurch wird das Tauschen von Bloecken gegen Ersatz-Sektoren erst moeglich. Dennoch weiß die SSD, wie die Bloecke verschachtelt sind. Mit dem Defragmentieren und Konsolidieren sorgt man also TROTZDEM dafuer, dass die Daten linear von der SSD ausgelesen werden koennen. Die SSD speichert nicht einzelnde Dateien. Die SSD hat keine Ahnung, was sie speichert. Sie ist sich auch nicht bewusst, welches Dateissystem auf ihr gespeichert ist etc. Sie organisiert einfach nur ihre Pages und legt Daten LINEAR darin ab.

    Also kurz:

    Das Defragmentieren von SSDs ist nicht direkt schaedlich. „Schaedlich“, wohl eher unnoetig, ist das Konsolidieren der Daten. Das Zusammenfuegen fragmentierter Dateien ist jedoch weder schaedlich, auch ist es nicht richtig, das es keinen Einfluss auf die Lesegeschwindigkeit der Daten hat. Denn der Verwaltungsaufwand des Dateissystems und auch die Leistung der SSD sind Faktoren, die hier einen Messbaren Unterschied aufweisen. Ob sich das lohnt ist eine andere Frage. Das haengt von der SSD und dem PC ab.

    Und SSDs haben seit Langem eine so große Schreibleistung, das selbst tageliches Defragmentieren viele Jahre braeuchte, um der SSD nennenswert die Lebenserwartung zu reduzieren. Die SSD wird eher an einem Controllerdefekt verrecken, als an ausgehenden Ersatz-Zellen.

    Unter Windows 10 kann man alle paar Monate, wohl eher nach Windows Update, die Defragmentierung der SSD ausfuehren.

    Defrag c: /D /U /V

    Leider fuehrt Defrag dann auch das Konsolidieren der Daten aus. Wenn man das aber nur minimal jeden Monat macht, muss man sich ueber die Lebenswerwartung der SSD nicht kuemmern.

    Vorteil: Schnelleres Booten und schnellerer Dateizugriff. Je nach Performance der SSD ist der Effekt weniger spuerbar. Das muss jeder selbst fuer sich herausfinden. Zum einen kann die SSD intern langsamer sein: Dann hilft das Defragmentieren oft deutlich. Bei sehr schnellen SSDs ist der Effekt weniger spuerbar. Dafuer haelt sich aber die CPU-Auslastung bei der enormen Menge an Zugriffen weiter unten. Bei Datenbanken kann so der I/O maximiert werden.

    Das Defragmentieren der SSD schadet ist eine Urban Legend. Das Speichern von Daten schadet der SSD auch. Also: Speichert keine Daten auf der SSD! Die geht davon putt!

    – Und es gibt auch Faelle, wo eine SSD nicht vom System als SSD erkannt wird. Speziell wenn man Hardware-RAID Controller einsetzt. Da funktioniert dann auch TRIM nicht. Hier kann das manuelle Defragmentieren ebenfalls Leistung zurueckfuehren. Hier muss man also schauen.

    – Hat man Billig-SSDs mit schlechtem verbauten Controller: Vielleicht drauf achten. Hat man ordentliche SSDs >> Voellig wurst.

    Ich empfehle uebrigens Workstation SSDs. Intel stellt entsprechende Modelle her. Sind vielleicht nicht die Schnellsten, sind aber auch nicht von TRIM abhaengig und halten ihre Performance stabil. Zudem haben sie einen Schutz vor ploetzlichen Stromverlust. Es gibt entsprechende Modelle von anderen Herstellern.

    1. Danke für Ihren ausführlichen Kommentar.

      Sie müssen bedenken, dass er zur Zeit der ersten SSDs entstanden ist.

      In der Tat gibt es jetzt ein paar technische Änderungen, die ein gelegentliches defragmentieren vertretbar machen.

      Solange das Dateisystem, wie Sie schon richtig schreiben nicht exakt auf die SSD optimiert ist, also korrekt ausgerichtet und mit korrekten Blockgrößen (unter Windows Zuordnungseinheit) wird es immer wieder zur Fragmentierung von Dateien kommen.

      Windows selbst defragmentiert, wie oben geschrieben schon auch SSDs aber nur bei aktivem VSS Dienst.

Hinterlasse einen Kommentar