| |
Guckloch |
Hier kann man sich über die letzten Beiträge im Board live informieren, das kleine Fenster welches sich durch einen Klick öffnet aktualisiert sich von alleine alle 60 Sekunden.
Guckloch öffnen |
Rechner-Support Toolbar |
|
Team |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Boardsuche |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Links |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Forenliste |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
|
|
 |
Laufwerksfragmentierung unter Linux |
|
smalltalk
Desktop des Monats Oktober 2007

Dabei seit: 29.03.2007
Beiträge: 425
Dieser User hat sich mal bedankt
CPU: Celeron 2.6GHz | P3-700 | Celeron 433
 |
|
| Laufwerksfragmentierung unter Linux |
 |
Im Anhang befindet sich ein Java-Programm, mit dem sich die Fragmentierung von Laufwerken (getestet EXT2/3 und ReiserFS) unter Linux ermitteln lässt.
Ich poste das Programm hier, da es mit Root-Rechten ausgeführt werden muss und ich mich deshalb moralisch verpflichtet fühle auf die Funktionsweise einzugehen
Bedienung : das Programm wird mit java -jar FileFrag.jar [Verzeichnis] gestartet. Hierbei püft das Programm, ob Root-Rechte vorliegen.
Zunächst wird die gesamte Verzeichnisstruktur eingelesen. Dynamische Links werden hierbei ignoriert. Gleichzeitig achtet das Programm auf die Dateisystemgrenzen. Wird z.B. als Verzeichnis /home/ eingeben, wird nur die HOME-Partition überprüft.
Ausgeschlossen von der Prüfung werden die Pseudo-Dateisysteme /sys, /proc, /dev .
Bereits während des Scannens wird im Verzeichnis /tmp/ die Datei script.sh erstellt, die die ganze Arbeit später übernimmt.
Die Einträge sehen z.B. wie folgt aus:
/usr/sbin/filefrag "/usr/lib/openoffice/help/en/highcontrast1.css"
Dieses erfolgt für jede Datei.
Das Programm filefrag aus den e2fsprogs sollte bei jeder Linux Installation bereits dabei sein.
Nach dem Scannen wird das Script ausgeführt und das Java-Programm sucht unter Verwendung von regEx aus dem Ausgabestream des Scriptes die entsprechen Daten heraus. Es findet seitens des Java-Programmes kein Zugriff auf das System statt (Quellcode in der jar Datei). Erhält das Java-Programm über einen Zeitraum von 5 Sekunden keine Daten, wird der aktuelle filefrag-Prozess gekillt und das Script kann weiterarbeiten. Nach 10 solcher Ereignisse wird der Vorgang abgebrochen. Üblicherweise läuft das Script ohne Probleme durch.
Da jede Datei durch filefrag einzeln überprüft wird, dauert der check eines Dateisystems entsprechend lange.
Die Ausgabe des Programmes sieht folgendermaßen aus:
michael@laptop:/$ sudo java -jar ~/Java/FileFrag.jar /
[sudo] password for michael:
Scanned Files: 152022
Total: fragmented Files: 1163 Unfragmented Files: 150859
Files with more than 8 fragments: 46
Total fragmentation: 0.76 %
max fragmented file:
/usr/share/mime-info/gnome-vfs.keys: 24
/usr/share/mime-info/gnome-vfs.keys: 24
/usr/share/mime-info/gnome-vfs.keys: 24
/var/lib/dpkg/status: 26
/var/log/dpkg.log: 28
/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/xawt/libmawt.so: 30
/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/xawt/libmawt.so: 30
/var/lib/scrollkeeper/scrollkeeper_docs: 36
/var/lib/scrollkeeper/scrollkeeper_docs: 36
/mnt/vbox/Windows XP.vdi: 830
Es werden die 10 am stärksten fragmentierten Dateien ausgeben.
Das Script löscht sich nach der Ausführung selber.
BUGS:
* wie an der Ausgabe gesehen werden kann erscheinen einige Dateien mehrfach. Das liegt daran, das ich bei der Ausgabe der Dateien aus Einfachheitsgründen eine Map verwende. Liegen wie hier z.B. mehrere Dateien mit 24 Fragmenten vor, wird immer nur eine angezeigt. Die Berechnung der Anzahl erfolgt hiervon unabhängig.
* es kann manchmal nach dem Start vorkommen, das das Programm keine Daten empfängt, obwohl das Dateisystem unterstützt wird. In diesem Falle gibt es die Fehlermeldung heraus, dass das Dateisystem möglicherweise nicht unterstützt wird. In einem solchen Fall hilft es das Programm nochmals zu starten. Es handelt sich hierbei wohl um Timingprobleme mit dem Script.
Nutzen: das Programm macht genauere Angaben als e2fsck und funktioniert zumindest auch auf ReiserFS. Zum Testen braucht das Dateisystem nicht ausgehängt zu werden.
Ansonsten ist es recht nützlich um vor Windows-Nutzern anzugeben. Wer erreicht 4 Tage nach einer frischen Systeminstallation zuzüglich des Nachinstallierens von ca. 2.5 GB Software einen Fragmentierungsgrad von 0.76 %
?
__________________ A programmer is just a tool which converts caffeine into code
|
|
30.04.2008 20:53 |
|
|
| |
|
smalltalk
Desktop des Monats Oktober 2007

Dabei seit: 29.03.2007
Beiträge: 425
Dieser User hat sich mal bedankt
CPU: Celeron 2.6GHz | P3-700 | Celeron 433
Themenstarter
 |
|
Das Programm findet nur die Fragmentierung heraus.
Wenn ein Java Programm defragmentieren könnte wäre ich wohl der Anwärter für den nächsten Turing Award
.
Es machte schon Arbeit Java beizubringen unter Linux die Dateisystemgrenzen zu ermitteln
.
__________________ A programmer is just a tool which converts caffeine into code
|
|
01.05.2008 08:43 |
|
|
| |
|
|
|
 |
|