Defrag bei Linux??

Dieses Thema im Forum "Linux-Distributionen" wurde erstellt von Anton, 21. Dezember 2002.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Anton

    Anton Byte

    Registriert seit:
    20. September 2000
    Beiträge:
    81
    Hallo,
    als absoluter LINUX-Neuling meine Frage:
    gibt es bei Linux auch ein Programm zum Defragmentieren der Festplatte oder wird das von Linux überhaupt nicht benötigt?
    Wie würde das heissen und wie starte ich es??
    Danke für Euere Hilfe,
    mfG Anton
     
  2. Tux_1984

    Tux_1984 Byte

    Registriert seit:
    18. Oktober 2002
    Beiträge:
    117
    System neu aufsetzten würde bei mir auch keinen Sinn machen, da ich ziemlich häufig Pakete update ;).

    Auf jeden Fall werde ich mir das mal für das nächste mal merken. Meine gesaugten Files sitzen sowieso nicht auf / sondern auf fat32, bin schließlich doch noch hin und wieder mit Win unterwegs und dann will ich das schließlich auch lesen können :)

    Kai
     
  3. cirad

    cirad Kbyte

    Registriert seit:
    24. Februar 2001
    Beiträge:
    509
    Hmm, ich kann mich wieder nicht kurzfassen. *g* So, ich gehe jetzt pennen.

    Frohe Weihnachten! (:
     
  4. cirad

    cirad Kbyte

    Registriert seit:
    24. Februar 2001
    Beiträge:
    509
    Also das System defragmentiert nichts automatisch. Eine Datei, die fragmentiert ist, bleibt fragmentiert. Da läuft kein Daemon drüber und biegt das wieder hin.

    Zerstören würde Defrag aber nichts (bei normaler Funktion). Da Daten sich aber sowieso ändern, fragmentiert das ganze auch wieder recht schnell und pendelt sich irgendwo bei ein paar Prozent ein. Defragmentiert man gleich wieder, hat man ein paar Tage ein "schönes" Dateisystem und dann pendelt es sich wieder bei ein paar Prozent ein. Daher lohnt sihc der Zeitaufwand und das Risiko eines Defrags nicht wirklich. (Risko = Absturtz beim Defragmentieren, Fehler in Defrag (ist glaube ich nur Beta))

    Warum man recht schnell bei diesen paar Prozent Defragmentierung landet, geht wohl stark ins Detail und über mein Wissen hinaus. Wird wohl etwas mit einem Kompromiss zwischen Perfomance, CPU-Lastigkeit und mit internen Strukturen zu tun haben.

    Die paar Prozent sind aber durchaus normal und das Dateisystem organisiert sich ganz gut selbst. Da braucht man nicht zusätzlich nachhelfen. Wenn du ein "dummes" Defrag hast, bringt es sie Selbstorganisation auch nur durcheinander (vielleicht hast du das gemeint) ... aber ext2/3 ist angeblich recht intelligent, legt Dateien in die entsprechenden Gruppen und die Daten über die Platte verteilt an (aber eine Datei möglischt am Stück).

    Wie gesagt, behält man 10% auf der Platte frei, sollte alles ok sein.

    Außerdem gibt es noch das Verzeichnis /var. Das heißt var, weil da variable Daten drin sind, die sich sehr häufig ändern (Drucker-Spools, Logfiles, Crontabs, Pakete, Mail, Manpage-Caches, ...). var fragmentiert also überdurchschnittlich stark (pendelt sich dann eben statt bei 5% bei 15% Fragmentierung ein (die Zahlen sind rein exemplarisch). Dieses Verzeichnis könnte man einfach auf eine extra Partition auslagern, so daß das eigentliche System von den vielen Dateiumbewegungen und Neuschreibungen nicht beeinflußt ist.

    Das gleiche gilt für /home. Hier liegen die User und ihre Dateien. Sie ändern Konfigs, Browsen (Cache), schreiben Dokumente, laden Files runter, speichern Mails und so weiter. /home wird als mittelmäßig stark fragmentierend angenommen. Auch das kann man auf eine extra Partition auslagern, so daß / davon nicht beeinflußt wird.

    Dateien im System ändern sich ansonsten sehr selten (außer man Updatet jeden Tag seine Pakete oder sowas).

    Aber das ist Luxusschnickschnack und bedarf ein wenig Erfahrung, um die richtige Größe zu wählen. (MAn kann ja nach einer Zeit gucken, wie groß die Verzeichnisse so werden.)

    Was man aber nicht machen sollte ist, für das System 20GB zu nutzen und auf der gleichen Partition mit MLDonkey/Edonkey Files zu ziehen. Wie oben beschrieben, ist MLDonkey kritisch, weil es viele kleine Teile parallel zieht, parallel schreibt und kein Speicher vorher fest reserviert werden kann, so das alles durcheinandergewürfelt wird und das große Dateien zwangsläufig immer fragmentieren müssen (das Dateisystemlayout läßt schon nicht zu, daß sie am Stück liegen (jede Gruppe hat Inodes, Inode- und Block-Bitmaps, die Blöcke belegen, die muß so eine Datei zwangsläufig überspringen.).

    Ich habe beispielsweise 3GB für mein System, 4GB für /home, 512MB für /var und ca. 30GB für den Rest (plus Kleinkram für /boot und swap). Die 30GB stehen MLDonkey zur Verfügung, da liegen außerdem Filme und MP3s. Nichts davon schreibt mir auf der System-Partition rum.

    Aber da wird jeder andere Vorlieben und Erfahrungen gemacht haben und die Welt geht nicht unter, wenn /var oder /home mit auf / liegen. Wie oben schonmal gesagt, man muß sich darüber nicht soviel Gedanken machen oder wegen sowas gar neuinstallieren.
     
  5. Tux_1984

    Tux_1984 Byte

    Registriert seit:
    18. Oktober 2002
    Beiträge:
    117
    Hmm...okay soweit alles verarbeitet und gemerkt, dass ich an einer Falschinformation krepiert bin, bzw. besser gesagt sie mir eher teilweise falsch, bzw. unvollständig gemerkt habe. Man lernt halt nie aus.
    Nur noch mal zur Absicherung, eine Defragmentierung macht also keinen Sinn, weil das das System automatisch macht, würde das System aber nicht zerstören, da halt nur anders Defragmentiert würde.

    Kai
     
  6. cirad

    cirad Kbyte

    Registriert seit:
    24. Februar 2001
    Beiträge:
    509
    Zerstört wird da nichts. Für ext2/3 findest du beispielsweise auch Defrag.

    Das Problem sind nicht die vielen kleinen Dateien, denn da greifen Zahlreiche Mechanismen. Man hat beispielsweis eine PreAllocation von 8 Blöcken, so daß eine Datei garantiert 8 Blöcke am Stück lang ist. Das verhindert kleine Fragmente und das Seeking geht im Normalfall im Preload des Kernels unter (Seeking ist das Suchen auf der Platte, bzw. das bewegen des Kopfes). Leider funktioniert das besser auf Systemen mit vielen Usern, als auf Systemen mit einem User.

    Des weiteren werden Dateien nicht wie bei beispielsweise FAT hintereinander angelegt, sondern wenn möglich in die jeweilige Nähe der Verzeichnisse, in denen sie sind. Willst du auf eine Datei zugreifen, muß immer erst das Verzeichnis gelesen werden, denn darin steht die Inode (unter anderem die Lage der Datei) und der Name der Datei drin. Unter ext2/3 ist die Partition dazu in meist 128MB große Gruppen unterteilt. Verzeichnisse und Dateien, die zusammen gehören, werden möglichst immer in ein und die selbe Gruppe gesteckt.

    Außerdem weist Linux Dateien einen möglichst durchgängigen Platz zu, wo die Datei komplett reinpaßt.

    Das Problem an großen Dateien ist nun, daß ein durchgängiger Platz schwierig gefunden werden kann. Außerdem paßt eine 200MB Datei nicht in eine Gruppe. Schwerwiegend kommt noch hinzu, daß ext2/3 (und auch glaube ich ReiserFS) keine Reservierung von Speicherplatz ermöglichen. Ziehst du beispielsweise ein Film mit Edonkey, so kann nicht gesagt werden, daß für das File 700MB benötigt werden. Da so ein Ziehen von einem Film schonmal ein paar Tage dauern kann, werden alle möglichen Daten dazwischen geschrieben, andere Filme die parallel gezogen werden kommen dazwischen und so weiter. Dann geht die Transferrate beim Kopieren eines solchen Filmes schonmal von 25MB auf 3MB runter. Reservierung von Speicherplatz ist Zukunftsmusik, soll aber irgendwann kommen (zumindest für ext3).

    Aber um es kurz zu machen:
    Linux-Dateisysteme sind selbstorganisierend und eine gewisse "Unordnung" ist ERWÜNSCHT. Denn nur dann sind die Daten komplett über die Platte verteilt und weitere Dateien können in der Nähe ihrer Verzeichnisse gespeichert werden. Bzw. nur dann können wachsende Dateien (bspw. Logfiles) die neuen Daten in der Nähe speichern.

    Die Selbstorganisierung und gute Platzauswahl funktioniert aber nur, wenn Platz auf der Platte ist. Daher gilt die Regel, daß man 10% auf einer Partition IMMER frei lassen sollte. Machst du sie voller als 90%, kann es ganz schnell mächtig langsam werden. Die Regel gilt unter Linux genauso wie unter Windows für NTFS und sollte auf jeden Fall ernst genommen werden.

    PS: Defragmentierung lohnt sich im übrigen nicht, weil es sehr zeitaufwendig ist und die Platte ohnehin recht schnell wieder einen gewissen Grad an Fragmentierung erreicht.

    PPS: Dateisysteme werden "älter" und die Fragmentierung zunehmend ungünstiger. Bei modernen Journaling-Filesystemen wie ReiserFS oder ext3 geht das schneller. Da muß man sich aber keinen Kopf drum machen. Ein paar Jahre geht das problemlos und Server laufen durchgehend Jahrelang. Das wollte ich nur erwähnen, nur damit nicht der Gedanke aufkommt, Fragmentierung wäre kein Problem und würde rein gar nichts ausmachen.
     
  7. Anton

    Anton Byte

    Registriert seit:
    20. September 2000
    Beiträge:
    81
    Danke Dir für Deine ausführliche Erklärung! :-)
    Gruß Anton
     
  8. Tux_1984

    Tux_1984 Byte

    Registriert seit:
    18. Oktober 2002
    Beiträge:
    117
    Defragmentierung wird von Linux gar nicht, zumindest nicht als extra Tool benötigt. Immer wenn neue Daten auf die Platte geschrieben werden wird im Prinzip, zumindest teilweise, defragmentiert. Eine vollständige Defragmentierung würde dir dein Linux zerstören, da bestimmte Daten an bestimmten Zylindern gesucht werden und bei einer normalen Defragmentierung wie Windows das macht würden sie warscheinlich verschoben und damit wäre Linux funktionsunfähig.
    => Selbst wenn es solche Tools geben sollte, lass die Finger davon und überlass das deinem OS.

    MfG

    Kai
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen