ext3 spaesse

Wenn man in einem ext3-Dateisystem zu grosse Verzeichnisse bekommt, dann wird es auf jeden fall lustig. Beispiel?

drwxrwxrwx   2 martin martin  16M 10. Okt 20:21 blub/

ein Listing dauert:

$ ls -1 blub|wc -l
251144
3,19s user 2,94s system 0% cpu 1:16:40,47 total, running ls -F --color=auto -1 blub
0,02s user 0,01s system 0% cpu 1:16:40,47 total, running wc -l

Jep, eine geschlagene Stunde. Auf eine System das ansonsten eine Last von 0.2 hat. Irgendwie ungesund. Platten sind io laut smartctl und tests. Es liegt übrigens auch nicht an fehlenden directory indizes, die sind bei CentOs 5.x per default an:

# tune2fs -l /dev/md1|grep index
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file

Also was tun? Verzeichnisse mit weniger Einträgen, dafür mehr Verzeichnisse. Was dort zu beachten ist: Die Verzeichniseinträge “schrumpfen” nicht automatisch. Dieses 16M Monster braucht weiterhin 16M und das Listing wird – bis auf eventuelles Caching – nicht schneller, auch wenn dort nur noch 256 Einträge drin sind. Hier heisst es: rmdir und mkdir.

Ich mach’ mich jetzt mal daran, ein Script zu schreiben, welches für knapp 3 Millionen Dateien ein neues Zuhause findet.

Einen Kommentar schreiben:

Bitte schreib' in das folgende Feld die Zahl 123: