[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: "du" auf XFS gibt falsche Dateigröße an



> Mal eine ggf. dämliche Frage: HFS+ und NTFS fragmentieren ja auch nicht,
> wenn man den Parolen der Hersteller glauben schenken will. Trotzdem
> finden Defragmentierer reißenden Absatz und erzeugen Leistungszuwächse,
> die nicht immer nur eingebildet sind. Ergo -und Ihr bestätigt es ja auch
> in der Diskussion- existiert Fragmentierung auf allen Filesystemen. Und
> dennoch gibt es unter Linux keine Filesystem-Defragmentierer? :-/

Klar gibt es das. Hängt vom Dateisystem ab. XFS hat beispielsweise
"xfs_fsr". ext3 hat keinen Dateifragmentierer. Ich selber nutze auch
unter anderem deswegen selber XFS. Für ext4 ist einer geplant, aber
glaube ich noch nicht fertig.

Ansonsten wird fragmentierung auf modernen Dateisystemen reduziert, und
nicht jede Fragmentierung ist negativ. Wenn eine 600MB Datei zum
beispiel in 6 Teile aufgesplittet ist, ist diese Fragmentierung
vollkommen unrelevant.

Fragmentierung ist nur dann relevant wenn man sehr viele Fragmente für
kleine Dateien besitzt. Aber auch das ist möglich. Ich hatte unter
Debian Lenny mal ein Torrent Programm das anscheind schlecht
programmiert war und millionen von fragmente erzeugt hatte. *filefrag*
hatte dort selbst für 170MB Dateien Millionen von Fragmente und der
lesespeed der datei lag auf ext3 (damals noch genutzt) dann bei ca. 70
kbyte/sec.

Bei ext3 reicht dann ein kopieren der Datei(en) womit die Fragmentierung
dann aufgehoben wird. Was aber in der Regel bei jedem Dateisystem hilft.

Ansonsten fragmentieren in diesem Sinne alle Dateisysteme. Nur ist
Fragmentierung nicht automatisch schlecht. Und die modernen Dateisysteme
reduzieren eine schädliche Fragmentierung. Aber ab 90% oder mehr
genutzten Speicher auf einer Partition beginnt jedes Dateisystem mit
einer schädlichen fragmentierung.

Ansonsten hängt es auch von der Applikation ab die du nutzt. Und wenn du
ein Gast-Image nicht vollständig preallozierst wird es sehr stark
fragmentieren. Den ein komplettes Gast Image sagen wir 10GB hat dann
löcher. Der Gast nutzt diese 10GB wie ein vollständiges Stück, und die
Dateisysteme lassen hier auch in der regel freiräume nach dateien so das
diese wachsen kann, daher auf dem Host bedeutet es das dann immer nach
und nach teile nicht anereinanderhängend auf dem Host erzeugt werden. Je
länger du den gast nutzt, desto höher wird die Fragmentierung werden.

Preallozierung kann hier deutlich helfen. Aber noch besser für Disk
Performance ist halt LVM, da du damit ein Blockdevice durchreichst.
Während bei einer Image datei eben eine datei durchgereicht wird, die
wiederrum auf einem Dateisystem liegt.

Fragmentierung gibt es so auch auf Linux Systemenen und auf dessen
Dateisystemen. Wer das nicht wahrhaben will ist einfach noch ein Linux
fanboy und hat sich damit noch nicht so genau beschäftigt ;) Und sucht
irgendwelche Argumente warum GNU/Linux besser als Windows ist.

Aber wie bereits gesagt, bei Modernen Systemen generell ist
Fragmentierung nicht so schädlich wie man meint. Du hast beispielsweise
heutzutage ein Multi-Tasking Dateisystem das sowieso mehrere Dateien
gleichzeitig offen hat zum lesen/schreiben. Daher das OS wird sowieso
nie eine große Datei an einem Stück auslesen, die zeiten von MS-DOS sind
da schon lange vorbei. Und es gibt ja noch die I/O-Scheduler die
versuchen möglichst effizent dateien auszulesen, oder ebend das OS
selber das durch prefetching buffern/cachen die performance ausbessert.

Nur darf die Fragmentierung halt nicht zu groß relativ zur Dateigröße sein.


Reply to: