Login
Newsletter
Werbung

Thema: Defragmentierungstool für Linux-Partitionen

2 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von cirad am Mi, 19. Februar 2003 um 21:29 #
@Wolle:
Daten zusammenschieben ist schonmal unsinnig. Ein Änderung einer Datei und schon entstehen Lücken, oder Fragmente müssens ans Ende angehangen werden.

Bei ext2/3 strebt man daher eine Verteilung der Daten an. Dazu werden Gruppen gebildet und jede Gruppe verwaltet zwei Bitmaps für Inodes und Blöcke. Dateien werden dann beispielsweise nach Möglichkeit in die Gruppe geschrieben, in denen auch das Verzeichnis ist, in dem sie liegen.

Die Gruppen wiederum sind über die komplette Partition verteilt, und das mit voller Absicht. So bleibt überall genügend Spielraum, Lücken zu füllen und Dateien, die "zusammen gehören" (bspw. gleiches Verzeichnis), auch zusammen liegen.

Das Problem sind größere Dateien. Die Forderung, diese in einem Stück zu haben, ist übrigens unüberlegt, da Gruppen nur 128MB groß sind (defaultmäßig) und in den Gruppen wiederum Unterbrechungen durch Inodes und Bitmaps existieren. Diese Unterbrechungen sind gewollt, denn sonst müßte man wie bei FAT32, immer an den Partitionsanfang, um Metadaten zu speichern, oder die komplette FAT im Speicher halten.

Mit großen Dateien kann man keine Lücken füllen, große Dateien belegen ganz Gruppen und noch schlimmer, es läßt sich kein Platz dafür reservieren. MLDonkey ist da beispielsweise tötlich, denn es schreibt viele große Dateien parallel in gleiche Gruppen. Das ist dann auch deutlich zu merken, beispielsweise geht die Performance bei mir von 30MB auf 3MB runter. Eine extra Partition für MLDonkey wirkt wunder.

Was Partitionen "vorne" an einer Platte anbelangt. Natürlich sind sie dort DEUTLICH schneller, deswegen legt man dort auch beispielsweise Swap ab. Nebenbei lohnt es sich, für stark fragmentierende Partitionen wie /var extra Partitionen einzurichten. (Für MLDonkey sollte man das auf jeden Fall machen.)

[
| Versenden | Drucken ]
  • 0
    Von Wolle am Do, 20. Februar 2003 um 07:13 #
    > Daten zusammenschieben ist schonmal unsinnig. Ein Änderung einer Datei und schon entstehen Lücken, oder Fragmente müssens ans Ende angehangen werden.

    Was auch immer "zusammenschieben" bedeutet... Zunächst meine ich nicht Dateien in sich zusammenschieben (ohne Fragmente). Ich meine die Gesamtmenge der Daten. Beispiel: Die Platte mit meiner Home-Partition (IBM DNES 309170 - 9,1 GB) hat 11474 Zylinder. Seek Times: Average:70ms, Full:130ms. Bei einer Partition und über die gesamte Partition verteite Daten, warte ich also im Durchschnitt 70ms, bis die angeforderte Daten beim Prozessor eintrudeln. Ständig belegt habe ich ca. 500 MB, die sich schon mal auf 4 GB aufblähen, und beim Aufräumen dann wieder auf 500 MB schrumpfen.

    Wenn ich die Daten in eine 4,5 GB Partition "zwänge", so dürfte die mittlere Zugriffszeit sich auf etwa 40ms reduzieren (von mir geschätzt). Das bedeutet dann fast die doppelte Geschwindigkeit. Dieser Effekt reduziert sich natürlich deutlich, wenn die nächsten Daten "in der Nähe" liegen.

    Wenn ein Zusammenschieben der Daten von 9 GB auf 4,5 GB sich deutlich bemerkbar macht, so wird der Gewinn größer, wenn die Daten weiter zusammengeschoben werden. Nun muss das ja nicht gleich auf 500 MB bei mir sein, aber wie wäre es denn mit z.B 2 GB bei geschätzter Zugriffszeit von 25 ms?

    Ich glaube nicht, dass ext2 meine 500 MB nach dem Anlegen des Dateisystems gleichmäßig auf die 9,1 GB verteilt. Meine Beobachtung widerspricht dem. Später, nach Downloads, Kopieraktionen u.ä., sieht das dann schon ganz anders aus. Ein Tool das nach einer Löschaktion den Anfangszustand wieder herstellt, dürfte auf meiner Home-Platte zumindest zu spürbaren Geschwindigkeitssteigerungen führen.

    Nichtsdestotrotz finde ich es egal, ob mein OpenOffice jetzt 60 Sekunden zum Starten braucht (real gemessen), oder sich auf vielleicht 45 Sekunden beschleunigen lässt. Immerhin müsste ich mich um solche Tools kümmern, und am ungemounteten Dateisystem arbeiten. Wo nehme ich die Zeit her, wenn ich dreimal am Tag 15 Sekunden spare? OK, nicht nur OpenOffice würde schneller - trotzdem glaube ich nicht, dass sich das lohnt.

    Aber wie wäre es, wenn sich das Dateisystem selber ein bischen optimieren würde? So als Cronjob alle Tage mal wieder nachsehen, ob man da nicht was machen kann und in Zeiten geringer Plattenaktivität "da mal Hand anlegen"?

    [
    | Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung