Windows defragmentiert einmal im Monat alle installierten SSDs im Hintergrund. Allerdings sind nur die wenigsten mit dieser Tatsache vertraut. Denn seitdem Windows 8 eine spezielle SSD-Optimierung in Windows einführte, kursiert im Internet der Irrglaube, Windows würde SSDs nur noch Trimmen und nicht mehr Defragmentieren.
Normalerweise wird dem Thema wenig Beachtung geschenkt. Doch aufgrund eines Fehlers in Windows 10 Version 2004, konnte das System plötzlich nicht mehr zwischen Festplatte und SSD unterscheiden. Als Resultat trimmte Windows HDDs, was natürlich nicht möglich ist und nur eine Fehlermeldung ausgab. Aufgrund des Fehlers nehmen viele Nutzer nun an, dass Windows außerdem fälschlicherweise SSDs defragmentiere, was das System normalerweise nicht machen solle. Als Workaround wird in Foren deswegen die temporäre Deaktivierung der Festplattenoptimierung empfohlen, bis Microsoft den Fehler behebe. Darauf kann man lange warten, denn Windows wird auch in Zukunft SSDs defragmentieren und es handelt sich um gewolltes Verhalten.
In diesem Artikel zeigen wir euch, wie ihr nachprüfen könnt, dass Windows eure SSD defragmentiert. Um mehr Licht ins Dunkeln zu bringen, haben wir zusätzlich noch bei Microsoft nachgefragt, was es mit diesem Verhalten auf sich hat. Der Entwickler vom Defragmentierungstool hat all unsere Fragen ausführlich beantwortet. Dafür vielen Dank!
Video: Windows defragmentiert deine SSD im Hintergrund
Alle Informationen zu diesem Thema findet ihr in unserem breitgefächerten Video auf YouTube. Darin erklären wir euch außerdem, was eine Defragmentierung überhaupt ist und wieso man SSDs nicht manuell defragmentieren sollte. Selbstverständlich findet ihr auch in dem Video die Antworten von Microsoft vor.
Dieser Artikel dient als ergänzende Ressource zum Video.
Unterschied zwischen Defragmentierung und Optimierung
Seit Windows 8 können Laufwerke entweder optimiert oder defragmentiert werden. Diese beiden Prozesse sind grundlegend unterschiedlich zueinander.
Bei einer Defragmentierung schiebt Windows die Dateifragmente auf der Festplatte hin und her, damit diese enger beieinander liegen. Dies war vor allem für HDDs zum Vorteil, die noch aus einer Drehscheibe samt Lesekopf bestanden. Durch kürzere Strecken zwischen den einzelnen Fragmenten einer Datei konnte die Geschwindigkeit des Systems erhöht werden.
Im Kontrast zur Defragmentierung steht die moderne Optimierung, welche übrigens nur von SSDs empfangen werden kann. Klassische Festplatten (HDDs) würden nur eine Fehlermeldung ausgeben. Hinter dem Optimierungsverfahren steht der sogenannte TRIM-Befehl. Bei diesem informiert Windows die SSD über gelöschte Speicherblöcke, die nun wieder mit neuen Informationen beschreibbar sind. Zwar wird der TRIM auch direkt beim Löschen von Dateien gesendet, doch bei hoher Laufwerksauslastung kann dies auch mal verworfen werden.
Windows defragmentiert SSDs im Hintergrund – und so findet ihr es heraus
Methode 1: Aufgabenplanung
- Öffnet Laufwerke defragmentieren und optimieren, indem ihr diesen begriff in die Windows-Suche eintippt.
- Stellt sicher, dass die geplante Optimierung eingeschaltet ist und alle Laufwerke ausgewählt sind (das ist standardmäßig der Fall).
- Alle geplanten Optimierungen sind in der Aufgabenplanung hinterlegt. Diese findet ihr ebenfalls durch die Windows Suche.
- Auf der linken Fensterhälfte ist eine Baumstruktur vorzufinden. Einzelne Einträge lassen sich mittels des kleinen Pfeils auf der linken Seite aufklappen. Navigiert euch zu Microsoft → Windows → Defrag. Klickt auf den Defrag-Ordner.
- Auf der oberen mittleren Hälfte des Fensters ist nun der Eintrag ScheduledDefrag vorzufinden. Dabei handelt es sich um die Aufgabe, welche die Laufwerksoptimierung erstellt hat. Sie startet wöchentlich defrag.exe mit den Parametern „-e -h -o -$“.
- Macht einen Rechtsklick auf die Aufgabe und klickt dann auf Ausführen. Nun wird Windows die Laufwerksoptimierung durchführen, auf derselben Art und Weise, wie es automatisch im Hintergrund geschieht.
- Wirft nun einen Blick in Laufwerke defragmentieren und optimieren aus Schritt 1. Die einzelnen Laufwerke werden in einer festen Reihenfolge optimiert. Sobald eure SSD an der Reihe ist, werdet ihr feststellen müssen, dass Windows eure SSD defragmentiert und danach eine Optimierung anhängt. Während eine Defragmentierung ausgeführt wird, lässt sich im Task-Manager ebenfalls eine hohe Laufwerksauslastung auf der jeweiligen SSD entnehmen.
Methode 2: PowerShell-Verlauf
Mit dem folgenden PowerShell-Befehl lässt sich der Verlauf der Defragmentierung einsehen:
Get-EventLog -LogName Application -Source „microsoft-windows-defrag“ | sort timegenerated | fl timegenerated, message
Achtung: der Befehl lässt sich nicht mit PowerShell Core (aus dem Microsoft Store) ausführen. Nutzt am besten das in Windows mitgelieferte PowerShell.
Anhand des Verlaufs der bisherigen Optimierung lässt sich erkennen, dass Windows im Hintergrund monatlich die eigene SSD erst defragmentiert und danach optimiert.
Wichtige Hinweise bezüglich der Windows 10 Versionen 2004 und 20H2:
- Es gab in diesen Windows-Versionen einen Fehler, dass Windows sich den Zeitpunkt der letzten Optimierung nicht merken konnte. Aus diesem Grund wurde in den Anfangszeiten des Updates eure SSD möglicherweise öfter als üblich defragmentiert. Dieser Fehler wurde bereits behoben.
- Windows 10 2004 versucht HDDs nach der Defragmentierung ebenfalls zu optimieren, was allerdings nicht möglich ist, da nur SSDs diesen Befehl empfangen können. Dies ist ein bekannter Fehler.
Fehler oder gewollt? Das sagt Microsoft zur SSD Defragmentierung
Zuerst gilt es klar zu stellen, ob die Defragmentierung von SSDs ein gewolltes Verhalten ist, oder ob es sich um einen langjährig übersehenen Fehler handelt.
Windows 10 defragments SSDs while running the ScheduledDefrag task. Is this behavior intentional, or could it be a long-standing undiscovered error?
Laut dem Entwickler von Defrag.exe ist dieses Verhalten gewollt, SSDs werden einmal monatlich von Windows defragmentiert.
This is intentional. Also though the task runs every week, SSDs are defragmented only once a month.
Als nächstes haben wir uns für die Gründe einer SSD-Defragmentierung erkundet.
According to an article with the title “The real and complete story – Does Windows defragment your SSD?” this is intentional behavior, because the NTFS file system has a maximum fragmentation limit. Is this still the case?
Daraufhin hat Microsoft einige gute Gründe genannt, weswegen die SSD Defragmentierung definitiv nicht ausgeschaltet werden sollte. Darunter das NTFS Fragmentationslimit, die Systemwiederherstellung (VOLSNAP), die vereinfachte Verwaltung von Metadaten und abschließend die höheren IOs durch fragmentierte Dateien.
Falls eine Datei auf eurer SSD zu stark fragmentiert ist, dann könnte das NTFS-Dateisystem Probleme mit der Verwaltung dieser Datei bekommen. Außerdem scheinen laut Microsoft auch stark fragmentierte Dateien auf einer SSD etwas Performance zu kosten, weil zusätzliche IOs entstehen.
Unser Test hat übrigens ergeben, dass SSDs auch dann defragmentiert werden, wenn die Systemwiederherstellung deaktiviert ist.
Yes, NTFS does have a maximum fragmentation limit. That said, it is not the primary reason, as most customers might not hit that. It is one of the reason though. And like discussed in that article snapshots are another reason. That’s because the granularity at which Volsnap does copy-on-write tracking is coarse than that of a cluster. That is, having a fragmented file means we need to COW more than what we need. Also IOs to highly fragmented files do have additional cost. It would result in multiple child IRPs (that needs to be allocated and initialized) from the file system to the storage stack. Also the metadata for the highly fragmented extents would be more than that of less fragmented file and we need to read metadata from potentially different portions of the disk (again multiple IOs) to be able to issue IOs to the region of interest in the file.
Anschließend warf ich die Frage auf, ob Windows allen installierten SSDs einer vollständigen Defragmentierung unterzieht, oder ob es ein spezielles Verfahren extra für SSDs gibt.
Does Windows 10 perform a full defragmentation on SSDs (just like on HDDs), or does Windows perform something like a “light” defragmentation to take care of cheap QLC SSDs.
Tatsächlich werden SSDs unter Windows mit dem selben Verfahren wie HDDs defragmentiert.
Windows 10 perform full defragmentation once a month on SSDs
Zum Abschluss wollte ich noch mehr über das undokumentierte Dollarzeichen-Argument wissen, welches dafür sorgt, dass Defrag.exe die SSDs defragmentiert. Lässt man beim Start von Defrag.exe dieses Argument weg, werden SSDs nur noch optimiert/getrimmt.
ScheduledDefrag starts defrag.exe with following arguments: “-c -h -o -$”. Thanks to the documentations we know:
c = perform the operation on all volumes;
h = run the operation on normal priority;
o = perform the proper optimization for each media type.
The $ icon doesn’t get any mention in any article but is present in every Windows installation. Furthermore we discovered that running defrag.exe without the $ icon ( only “-c -h -o”) doesn’t start a SSD defragmentation, just a trim on SSDs. The question is now: was this $ added to perform a SSD defragmentation in the background?
Tatsächlich hat man das Dollarzeichen nie dokumentiert, weil es nicht für den Endnutzer bestimmt ist. Es teilt Defrag.exe mit, dass es von der Aufgabenplanung heraus gestartet wurde. Entsprechend verhält es sich anders.
$ – indicates that defrag service is called from the default maintenance task. Different optimization have different heuristics on what tweaks to be made when called from the default maintenance task. Defragging SSDs once a month is one such.
Is wasn’t intended to be used by user directly, that’s the thinking behind not documenting them. The idea is to have the service tweak the optimizations run by the default scheduled task based on the feedback we receive.
Looks like it would be better if we have this documented too, let me run this by our team.
Sollte man die SSD-Defragmentierung unterbinden?
Die Tatsache, dass Windows alle SSDs einmal monatlich defragmentiert, sorgt für Verwirrung. Normalerweise raten Medien immer von einer SSD-Defragmentierung ab, weil SSDs keinen Lesekopf haben und somit durch stark verstreute Dateifragmente keine Geschwindigkeitseinbußen erleiden sollen. Außerdem altern SSD durch Schreibvorgänge, wovon eine Defragmentierung viele auslöst, da sie Dateien auf der SSD hin und her zu verschieben versucht.
Wir von WindowsArea empfehlen, die Laufwerksoptimierung für SSDs aktiviert zu lassen. Bei Microsoft arbeiten sehr talentierte Entwickler, die Konzepte mit Bedacht verfolgen. Wenn Microsoft der Meinung ist, dass es besser sei, dass Windows alle SSDs defragmentiert, dann ist das so. Schließlich haben sie die beste Einsicht auf die Funktionsweise ihres eigenen Dateisystems, welches gelegentlich eine Defragmentierung zu brauchen scheint. Zudem hat der Entwickler von Microsoft ausführlich argumentiert, weswegen es Sinn ergibt, eine SSD zu defragmentieren. Dadurch wird sichergestellt, dass euer Windows über mehrere Jahre hinweg schnell bleibt.
Außerdem verfügen SSDs mittlerweile über eine sehr lange Lebensdauer. Als Beispiel kann ich meine eigene heranziehen. Windows defragmentiert seit 7 Jahren meine Samsung 840 Evo monatlich, die zudem noch viele Betriebsstunden aufweisen kann und einige Updates mitgemacht hat. Ihr Gesundheitsstatus beträgt trotzdem noch 88%. Somit kann ich sicher sein, dass sie noch einige Jahre gute Dienste erweisen wird, trotz SSD-Defragmentierung.
Ihr müsst euch also keine Gedanken darüber machen, dass Windows eure SSDs defragmentiert. Es ist kein Fehler und sie wird dadurch keinen großen Schaden erleiden und ihr könnt trotz aktivierter Festplattenoptimierung beruhigt schlafen. Ergänzend möchte ich noch anmerken, dass die Defragmentierung unter Windows 10 nur Dateien umherschiebt, welche kleiner als 64 MB sind. Somit ist die Anzahl der geschriebenen Bytes nicht exorbitant hoch.
Update
Mittlerweile wird in den Microsoft Docs das Verhalten von Defrag auf SSDs beschrieben: defrag | Microsoft Learn.