Windows defragmentiert SSDs monatlich im Hintergrund

2

Video-Thumbnail als Titelbild: Windows defragmentiert SSDs. Man sieht eine brennende SSD und Armin, der schockiert guckt.

Windows defragmentiert einmal im Monat alle installierten SSDs im Hintergrund, doch nur die wenigsten sind sich dessen bewusst. Seitdem Windows 8 eine spezielle SSD-Optimierung in Windows einführte, kursiert im Internet der Irrglaube, dass Windows SSDs nur noch Trimmen und nicht mehr Defragmentieren würde.

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 ausspuckte. Aufgrund des Fehlers nehmen viele Nutzer nun an, dass Windows außerdem fälschlicherweise SSDs defragmentiere, was es normalerweise nicht solle. Als Fehlerbehebung empfehle man in Foren deswegen, die temporäre Deaktivierung der Festplattenoptimierung, bis Microsoft den Fehler behebe. Darauf kann man lange warten, denn Windows wird auch in Zukunft SSDs defragmentieren und es handelt sich um keinen Fehler!

In diesem Artikel zeigen wir euch, wie ihr nachprüfen könnt, dass Windows eure SSD defragmentiert. Um mehr Licht in die Dunkelheit 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 solle. Selbstverständlich findet ihr auch in dem Video die Antworten von Microsoft vor.

Dieser Artikel dient nur als Ergänzung zum Video und enthält entsprechend weniger Informationen.

Unterschied zwischen Defragmentierung und Optimierung

Seit Windows 8 können Laufwerke entweder optimiert oder defragmentiert werden. Diese beiden Prozesse sind sehr unterschiedlich zueinenander.

Bei einer Defragmentierung schiebt Windows 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 nach hinten verschoben werden.

Windows defragmentiert SSDs im Hintergrund – und so findet ihr es heraus

Methode 1: Aufgabenplanung

  1. Öffnet Laufwerke defragmentieren und optimieren, indem ihr diesen begriff in die Windows-Suche eintippt.
  2. Stellt sicher, dass die geplante Optimierung eingeschaltet ist und alle Laufwerke ausgewählt sind (ist standardmäßig der Fall).

Benutzeroberfläche von Laufwerke optimieren unter Windows 10

  1. Alle geplanten Optimierungen sind in der Aufgabenplanung hinterlegt. Öffnet diese, indem ihr ebenfalls nach ihr in der Windows Suche sucht.
  2. 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 MicrosoftWindowsDefrag. Klickt auf den Defrag-Ordner.
  3. Auf der oberen mittleren Hälfte des Fensters ist nun der Eintrag ScheduledDefrag vorzufinden. Dies ist die Aufgabe, welche die Laufwerksoptimierung erstellt hat. Die Aufgabe startet wöchentlich/monatlich die Anwendung defrag.exe mit den Parametern „-e -h -o -$“.

Aufgabenplanung mit geöffneten Defrag-Ordner unter Windows 10. Markiert ist die Aufgabe ScheduledDefrag.

  1. Klickt rechtsklick auf die Aufgabe und dann auf Ausführen. Nun wird Windows die Laufwerksoptimierung durchführen, auf der selben Art und Weise, wie es im Hintergrund getan werden würde.
  2. Wirft nun einen Blick in Laufwerke defragmentieren und optimieren, wie in 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 noch eine Optimierung ausführt. Während eine Defragmentierung ausgeführt wird, lässt sich im Task-Manager ebenfalls eine hohe Laufswerksauslastung auf der jeweiligen SSD entnehmen.

Windows defragmentiert SSD unter Windows 1903.

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.

Windows Terminal mit der Ausgabe des obenstehenden PowerShell-Befehls. EventLog von Windows Defrag.

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 Windows Version 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 unterstützen. 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 defragmentierte Dateien auf einer SSD etwas Performance zu kosten, weil das Dateisystem damit zu kämpfen hat.

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 optimiert 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, or does it fulfill a different purpose?

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 installierten SSDs einmal monatlich defragmentiert, wird definitiv für Verwirrung sorgen. Normalerweise ratet man immer von einer SSD-Defragmentierung ab, weil SSDs keinen Lesekopf haben und somit durch „stark verstreute Dateifragmente“ keine Geschwindigkeitseinbußen erleiden. 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 raten trotzdem davon ab, die Laufwerksoptimierung für SSDs auszuschalten. Bei Microsoft arbeiten sehr talentierte Entwickler, die gute Konzepte mit Bedacht verfolgen. Wenn Microsoft der Meinung ist, dass es besser sei, dass Windows alle SSDs defragmentiert, dann ist es so. Man wird bei der Implementierung seine Gründe gehabt haben. Defragmentiert Windows eure SSD, so werden die Metadaten vom Dateisystem angepasst, damit euer Windows über mehrere Jahre hinweg schnell bleibt.

Außerdem verfügen SSDs mittlerweile über eine sehr lange SSD-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 durchhalten wird, trotz SSD-Defragmentierung.

Screenshot von der App CrystalDiskMark, die den Lebenszustand einer SSD anzeigt.

Ihr müsst euch also keine Gedanken darüber machen, dass Windows eure SSDs defragmentiert. Sie wird dadurch keinen großen Schaden nehmen und ihr könnt weiterhin mit 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.

Falls jemand dennoch unbedingt darauf besteht, dass Windows keine SSDs mehr defragmentieren soll: bearbeitet dazu die Aufgabe ScheduledDefrag in der Aufgabenplanung (siehe Anleitung zur Methode 1). Dort lassen sich unter AktionenProgramm starten die Startargumente bearbeiten. Hier einfach das -$ am Ende entfernen, den Rest bitte so stehen lassen.

5 3 votes
Article Rating
Advertisements

Über den Autor

21 Jahre alt | Redakteur & Videoproduzent bei WindowsArea seit 2016

Subscribe
Benachrichtige mich zu:
2 Comments
neuste
älteste beste Bewertung
Inline Feedbacks
View all comments