Comparatif des filesystems journalisés

Un article de Wiki SOS-ADMIN.


Sommaire

Introduction

Voici un petit comparatif des filesystems journalisés que j'ai réalisé dans les conditions suivantes :

  • serveur de test Athlon 1 GHz, RAM 512 Mo
  • système Gentoo Linux 2005.1 sorti de boîte
  • 2 disques IDE IBM 60 Go

Partitions

Tables de partition

Disk /dev/hda: 61.4 GB, 61492838400 bytes
16 heads, 63 sectors/track, 119150 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          63       31720+  83  Linux
/dev/hda2              64        1056      500472   82  Linux swap / Solaris
/dev/hda3            1057        8807     3906504   83  Linux
/dev/hda4            8808      119150    55612872   83  Linux
Disk /dev/hdc: 61.4 GB, 61492838400 bytes
16 heads, 63 sectors/track, 119150 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1         507      255527+  83  Linux
/dev/hdc2             508      119150    59796072    5  Extended
/dev/hdc5             508        1319      409247+  82  Linux swap / Solaris
/dev/hdc6            1320        7414     3071879+  83  Linux
/dev/hdc7            7415       39599    16221239+  83  Linux
/dev/hdc8           39600       79780    20251223+  83  Linux
/dev/hdc9           79781      119150    19842448+  83  Linux

Points de montage

La partition testée est la /dev/hda4 (dans l'exemple ci-desous elle est montée en reiserfs)

/dev/hda3 / reiserfs rw,noatime 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
udev /dev tmpfs rw,nosuid 0 0
devpts /dev/pts devpts rw 0 0
/dev/hda1 /boot ext2 rw,noatime 0 0
/dev/hda4 /home reiserfs rw,noatime 0 0
none /dev/shm tmpfs rw,noexec,nosuid,nodev 0 0
usbfs /proc/bus/usb usbfs rw 0 0
/dev/hdc8 /mnt/disk/hdc8 reiserfs rw 0 0
/dev/hdc9 /mnt/disk/hdc9 reiserfs rw 0 0


Filesystems testés

Ont été testés les filesystems suivants :

  • JFS : Journalized File System d'origine IBM (AIX)
  • EXT3 : Evolution journalisée de ext2 le filesystem historique de Linux
  • ReiserFS : Premier filesystem journalisé ayant été disponible sous Linux.

Nature des tests

Les tests réalisés ont consisté à faire :

  • une copie par rsync des répertoires /mnt/disk/hdc8 et /mnt/disk/hdc9 sur /home/hdc8 et /home/hdc9
  • une lecture par du des repertoires home/hdc8 et /home/hdc9
  • une supression récursive des répertoires home/hdc8 et /home/hdc9

Les mesures de temps ont été réalisée avec time -p

Les commandes utilisées ont donc été :

  • time -p rsync -a /mnt/disk/hdc8/ /home/hdc8/ et time -p rsync -a /mnt/disk/hdc9/ /home/hdc9/
  • time -p du -ha /home/hdc et time -p du -ha /home/hdc9
  • time -p rm -Rf /home/hdc8/* et time -p rm -Rf /home/hdc9/*

Les répertoires avaient pour caractéristiques :

  • /mnt/disk/hdc8 : 15 Go de petits fichiers (html,doc,xls,exe..) avec arborescence profonde
  • /mnt/disk/hdc9 : 16 Go de gros fichiers (video,mp3..) avec arborescence plate.

Tableau récapitulatif

JFS EXT3 ReiserFS
opération Type de fichiers taille real (s) user (s) sys (s)   real (s) user (s) sys (s)   real (s) user (s) sys (s)
copie
petits fichiers (html,doc,xls,exe..) 15 Go 16770,780 395,637 4649,111 16454,330 390,570 4568,860 16355,620 392,420 4556,300
time -p rsync -a /mnt/disk/hdc8/ /home/hdc8/
gros fichiers (video,mp3..) 16 Go 17152,361 436,299 6418,049 17286,470 428,710 6033,260 17277,900 424,360 5284,000
time -p rsync -a /mnt/disk/hdc9/ /home/hdc9/
lecture répertoires
petits fichiers (html,doc,xls,exe..) 15 Go 20,315 0,548 1,152 19,530 0,540 1,250 16,450 0,470 1,420
time -p du -ha /home/hdc8
gros fichiers (video,mp3..) 16 Go 0,232 0,004 0,016 0,240 0,000 0,000 0,200 0,000 0,020
time -p du -ha /home/hdc9
suppression répertoires
petits fichiers (html,doc,xls,exe..) 15 Go 272,919 0,344 73,337 129,890 0,160 12,570 74,140 0,320 49,490
time -p rm -Rf /home/hdc8/*
gros fichiers (video,mp3..) 16 Go 2,299 0,000 0,656 42,970 0,000 6,530 40,290 0,000 29,590
time -p rm -Rf /home/hdc9/*
34218,906 832,832 11142,321 33933,430 819,980 10622,470 33764,600 817,570 9920,820

Conclusion

A la lecture du tableau récapitulatif, on peut se rendre compte que les trois filesystems sont très proches les uns des autres pour l'essentiel des mesures (en jaune).

Il y a quelques cas qui sortent de l'ordinaire :

  • suppression très lente d'arborescence profonde pour JFS (en rouge)
  • suppression très rapide d'arborescence plate pour JFS (en vert)
  • lecture très rapide d'arborescence profonde pour ReiserFS (en vert)
  • suppression très rapide d'arborescence profonde pour ReiserFS (en vert)

En résumé

Si l'on devait faire un classement, ce serait celui-ci :

  1. ReiserFS
  2. Ext3
  3. Jfs

Ces résultats semblent confirmer d'autres tests :

  • Ext3 est bon dans tous les compartiments du jeu
  • ReiserFS apporte un léger plus si aborescence profonde avec beaucoup de petits fichiers
  • Jfs est un peu en dessous des autres.

Par contre les résultats sont différents en ce qui concerne la rapidité de création du filesystem et là le classement devient :

  1. Jfs
  2. ReiserFS
  3. Ext3

--BernardF 1 jan 2006 à 19:28 (CET)