Performance von großen Directories auf verschiedenen Filesystemen

Das Programm largedir erzeugt ein Directory mit n leeren Files, öffnet und schließt danach die Files in zufälliger Reihenfolge, und löscht sie zum Schluß wieder (in der gleichen Reihenfolge, in der sie angelegt wurden). Für diesen Test wurde n solange um 50% erhöht, bis die Gesamt-Testzeit 30 Minuten überschritt.

Die Graphen zeigen jeweils die Anzahl bearbeiteter Files pro Sekunde in Abhängigkeit von der Anzahl der Files im Directory.

Die getesteten Systeme waren:

clariion-dialog
Zugriff mittels NFS auf ein NAS: Server: Ein Clariion IP-4700 mit 10 36-GB-Platten (8+1 RAID-5, 1 Hot Standby) und Gbit-Ethernet. Client: 750 MHz PIII, 256 MB RAM, Kernel Linux 2.2.19, 3com905B 100Mbps Ethernet, 2 Switches dazwischen.
ext2-dialog
Der gleiche Linux-Rechner wie oben, aber diesmal lokaler Zugriff auf ein ext2 Filesystem (AIC-7890/1, IBM DDYS-T18350N).
ext2-merkur
Dual PIII/800, 512 MB RAM, Linux 2.4.9, sym53c1010-33, IBM DDYS-T36950N
reiserfs-merkur
Detto, aber mit reiserfs
xfs-merkur
Detto, aber mit xfs (außerdem wurde der Server zwischenzeitlich auf 1 GB RAM aufgerüstet - die Ergebnisse sind daher nur bedingt vergleichbar).
vxfs-pandora
HP 9000/L1000, 360 MHz PA-RISC 8xxx, 512 MB RAM. vxfs mit delaylog gemountet, lokale 9GB-Platte.

Files erzeugen

Graphik: Files erzeugen

ext2 fängt stark an und lässt dann stark nach. vxfs zeigt einen vergleichbaren linearen Abfall mit der Directorylänge, fängt aber auf niedrigerem Niveau an und fällt weniger schnell ab. Reiserfs und Clariion hingegegen sind von der Directorylänge fast unabhängig, nur mit dem Unterschied, daß Reiserfs immer schnell und das Clariion immer langsam ist.

Files öffnen

Graphik: Files öffnen

Alle lokalen Filesysteme zeigen hier einen deutlichen Knick, der wohl mit der Größe des iname-Caches korrespondieren dürfte. Unterhalb dieser Größe ist die Performance von der Directory-Größe weitgehend unabhängig, danach folgt ein mehr (ext2) oder weniger (reiserfs) drastischer Einbruch.

Files löschen

Graphik: Files löschen

Etwas überraschend zeigt hier nur ext2 auf Linux 2.2 einen Performance-Einbruch oberhalb einer bestimmten Directory-Größe, alle anderen zeigen fast konstante Performance, ext2 auf Linux 2.4 sogar die konstanteste und beste.

Noch mehr Graphen (samt Rohdaten)

largedir-clariion-dialog.out largedir-clariion-dialog.png
largedir-ext2-dialog.out largedir-ext2-dialog.png
largedir-ext2-merkur.out largedir-ext2-merkur.png
largedir-ext2-teal.out largedir-ext2-teal.png
largedir-reiserfs-merkur.out largedir-reiserfs-merkur.png
largedir-vxfs-pandora.out largedir-vxfs-pandora.png
largedir-vxfs-titan.out largedir-vxfs-titan.png
largedir-reiserfs-merkur.out largedir-reiserfs-merkur.png