14th Nov
0
Mein Computer wird immer langsamer – Fragmentierung
Schneller Speicher, langsamer Speicher
Im Bereich der Informationstechnologie spricht man oft von einem Flaschenhals, wenn es um Bauteile oder Programme geht, die den Gesamtablauf verlangsamen, zum Beispiel zu einer sehr langen Startzeit meines Windows führen. Ein solcher Flaschenhals ist bei nahezu jedem Computer die Festplatte. Zugriffe auf die Festplatte (Lesend oder Schreibend) kosten unverhältnismäßig viel Zeit. Deshalb gibt es die so genannte Speicherhierarchie, d.h. es gibt sehr, sehr schnellen Speicher, dieser ist im Prozessor integriert, es gibt sehr schnellen Speicher, der Arbeitsspeicher und es gibt die langsame Festplatte. Diese Hierarchie schlägt sich auch im Preis nieder, 1 TB (1 Terrabyte = 1000 Gigabyte) Arbeitspeicher kostet ca. 50000 € während man für 1 TB Festplattenspeicher nur noch ca. 50 € zahlen muss.
Es gibt Lösungen seinen Festplattenspeicher zu beschleunigen. Beispiel: Raid 0 aus SSD Platten. Beschleunigt wird hier aber auch das Leeren des Kontos. So eine Lösung lohnt erst mit zehn Festplatten und zusammen mit einem wirklich guten Raidcontroller muss man dann durchaus 7000 € investieren.
Bruchstücke
Der erste Schritt ist hier jedoch ein kostenloser, das Wissen um das Problem der Fragmentierung (Fragment = Bruchstück). Handelsübliche Festplatten speichern ihre Daten in Speicherblöcken. Was ist ein Block? Versuchen wir eine Festplatte etwas zu verstehen. Eine Festplatte besteht aus Magnetscheiben (sieht einer CD sehr ähnlich, ist aber keine). Mehrere davon sind übereinander gestapelt, mit etwas Abstand zueinander, damit noch ein Gerät dazwischen passt, mit dem ein Zugriff auf die Daten ermöglicht wird, der Lese/ Schreibkopf. Eine solche Scheibe unterteilen wir nun in Kreise mit unterschiedlichem Radius, wie Altersringe eines Baumes. Jeder dieser Kreise ist eine Spur. Nun teilen wir die Scheibe aber auch in Kuchenstücke und nennen diese Sektoren. Die Schnittmenge einer Spur mit einem Sektor, also nur ein ganz kleiner Ausschnitt ist der Speicherblock, die kleinste Einheit auf der Festplatte. Manchmal wird noch das Wort Cluster erwähnt, hierbei handelt es sich um eine Zusammenfassung mehrerer Blöcke.
Der Zugriff auf Daten erfolgt nun wie folgt: Die Scheiben rotieren sehr schnell und der Lese/ Schreibkopf fährt vor und Zurück und kann damit bei jeder Umdrehung auf einen Block pro Umdrehung zugreifen (in erster und einfacher Darstellung). Das heißt aber auch, sollten sich Daten über mehr als einen Block erstrecken, dann kostet das Lesen mehr als eine Umdrehung Zeit. Das wollen wir vermeiden.
Wie entsteht Fragmentierung?
Daten auf eine Festplatte sind keine statischen Konstrukte, sondern unterliegen, insb. die des Betriebssystems, dauerhaften Lese- und Schreibvorgängen. Nachfolgende Abbildung soll den Prozess der Fragmentierung etwas verdeutlichen.
In Schritt 1 erstellen wir eine einfach Word-Datei und speichern diese. Anschließend speichern wir uns einen kleinen Urlaubsfilm, den wir aufgenommen haben in Schritt 2. Dieser wird direkt hinter den Speicherblock unseres Dokuments geschrieben. Nun wollen wir unser Dokument bearbeiten und viel Text speichern, d.h. das Dokument wird größer und muss deshalb in Schritt 3 in zwei Teile getrennt und gespeichert werden. Mit dem Wissen aus dem letzten Abschnitt erkennen Sie sofort: hier wird uns das Lesen in Zukunft zusätzliche Zeit kosten. In Schritt 4 haben wir das Problem gelöst durch: Defragmentierung.
Auf das Dateisystem kommt es an
Als Windows Nutzer nutzen Sie wahrscheinlich NTFS, als Mac OS Nutzer wahrscheinlich HFS+ oder als Linux Nutzer wohl ext3. Was ein Dateisystem ist soll hier nicht weiter erklärt werden, nur soviel; ein Dateisystem verwaltet wie Daten auf die Festplatte geschrieben werden. Damit ist es in der Lage Probleme wie in der Abbildung beschriebenen zu lösen oder erst zu schaffen. Manche Dateisysteme legen Dateien einfach immer so ab, dass Fragmentierung nicht entsteht, dadurch aber viel ungenutzter Speicherplatz zwischen den Dateien. HFS+ wäre hier zu nennen. Eine Defragmentierung ist dadruch erst notwendig, wenn der Platz auf der Platte knapp wird. Mit einem NTFS Dateisystem gibt es die Möglichkeit unter Start->Mein Computer->Rechtsklick auf das entsprechende Laufwerk->Eigenschaften->Tools->Defragmentieren den Windows Dienst zu starten. Die Ergebnisse können sich insbesondere unter Windows XP sehen lassen. Die neueren NTFS Dateisysteme (Windows Vista, Windows 7), sind erheblich verbessert und hier ist eine Defragmentierung fast nie mehr notwendig.
Auch wenn die Defragmentierung viel Zeit kostet kann Sie viele Probleme bereits beheben, probieren Sie es aus.
Noch eine Anmerkung an die Linux Nutzer. Das Linux KEINE Fragmentierung mit seinen Dateisystemen erzeugt ist schlichtweg falsch. Dieser Mythos entstand wahrscheinlich nach Veröffentlichung dieser Arbeit: A Fast Filesystem for UNIX. Hier wird jedoch nur das UFS Dateisystem angesprochen, welches sehr tolerant bzgl. Fragmentierung und Performance ist.
About the Author
Computer sollen uns in Beruf und Alltag unterstützen. Damit das funktioniert müssen wir einen einfachen und intuitiven Zugang zu unseren Programmen, Daten und Systemen haben.