Banc d'essai sur ext2, ext3, reiserfs, xfs et jfs
Qing LIU (qliu@club-internet.fr), 7 avril 2002
Introduction
De nos jours, on dispose de plusieurs systèmes de fichiers journalisés
sous Linux, dont ext3, reiserfs, xfs et jfs. Il est alors naturel de se demander
lequel ou lesquels choisir. Un des critères est la performance du
système de fichier. Ici nous testons ces systèmes de fichiers avec
un certain nombre de benchmarks courants et un petit test en condition
réelle. Cette série de tests n'est en aucun cas exhaustif (j'aurais
aimé inclure des tests sous nfs, des tests simulant un serveur web etc).
Il serait aussi intéressant de comparer les spécifications, les
fonctionalités et la stabilité de ces systèmes de fichiers.
Matériel de test.
Nous avons disposé de deux PC de configurations différentes, appelées
x2a (gentiment mise à disposition par Christian L.) et
home.
Pour le test mongo, nous avons aussi utilisé un autre PC
nico
(merci Philippe !).
Matériel |
Processeur |
Ram |
Disque |
hdparm -tT |
Partition de test |
x2a |
Bi-Pentium III
1 Ghz (Coppermine) |
256 Mo |
SCSI FUJITSU,
UW2, 18 Go
Adaptec AIC 7899 |
180.28 Mo/sec
52.89Mo/sec |
/dev/sda3, 5.9 Go |
home |
Duron 700 Mhz |
128 Mo |
IDE Western
20 Go |
142.22 Mo/sec
20.98 Mo/sec
|
/dev/hda10, 3.6 Go
|
nico |
Bi-Pentium II
300 Mhz (Klamath) |
128 Mo |
SCSI SEAGATE
UW 4.5 Go
Adaptec AIC7860.
|
87.67 Mo/sec
13.82 Mo/sec
|
/dev/sda5, 2.5 Go
|
Le swap est désactivé. Sur
home le cache écriture (write cache) du
disque est activé. Comme on me l'a fait judicieusement remarquer sur la
mailing list d'xfs, cela explique, au moins partiellement, pourquoi les
benchs sont parfois meilleurs sur
home que sur
x2a.
Logiciels
x2a
RedHat 7.2. Le noyau est un 2.4.16 + patchs xfs-2.4.16-all-i386 et
jfs-1.0.14. Les outils associés sont e2fsprogs 1.25, mkreiserfs 3.x.0j,
xfsprogs-1.3.17, jfsutils-1.0.14.tar.gz. Le noyau est compilé avec egcs-1.1.2.
home
Slackware 8.0. Le noyau est un 2.4.16 + patchs xfs-2.4.16-all-i386 et
jfs-1.0.10. Les outils associés sont mount-2.11h, e2fsprogs 1.25, mkreiserfs 3.x.0j,
xfsprogs-1.3.13, jfsutils-1.0.10.tar.gz. Le noyau est compilé avec gcc 2.95.3.
nico
RedHat 6.1. Le noyau est un 2.4.16 + patchs xfs-2.4.16-all-i386 et
jfs-1.0.14. Les outils associés sont e2fsprogs 1.25, mkreiserfs 3.x.0j,
xfsprogs-1.3.17, jfsutils-1.0.14.tar.gz.
Paramétrage des systèmes de fichiers
Système de Fichiers |
Commandes de formattage |
Options de montage |
ext2 |
mke2fs [*] |
|
ext3-wb |
mke2fs -j [*] |
-o data=writeback |
ext3 |
mke2fs -j [*] |
|
reiserfs |
mkreiserfs |
-t reiserfs |
xfs |
mkfs.xfs -l size=8192b |
|
jfs |
mkfs.jfs -s 32 |
-t jfs |
[*] Pour le test mongo, les partitions ext2/ext3 ont été formatées avec
l'option -i 4096 pour palier le manque d'inode sur home et
nico.
Taille du journal.
Pour tous les systèmes de fichiers, la taille des blocs est de 4 Ko, et celle
du journal 32 Mo. La taille du journal par défaut est de 32 Mo pour ext3 et
reiserfs, 4800 Ko pour xfs, et 0.4% de la taille de la partition pour jfs.
Le fait d'accroître la taille du journal a une influence positive pour xfs
dans certains tests. Nous n'avons pas mesuré pour jfs.
Conditions de tests
Avant chaque test, la partition est formatée si nécessaire. Si la partition
est déjà formatée, elle est démontée remontée. De plus, un petit programme
en C se charge de vide au maximum les caches buffer et disque.
Sur
x2a, le système est en runlevel 3 sans crond, anacron, mais la partie
réseau est active (cependant l'accès se limite à deux ssh). Sur
home
et
nico, le système est proche de runlevel 1 + syslog.
Résultats
Bench mongo Pour ce test, une configuration
x-up est ajoutée. C'est simplement
x2a avec un noyau mono
processeur. Reiserfs est le plus rapide quand il s'agit de manipuler
un grand nombre de fichiers de petite taille (400,000 ou 800,000 fichiers de 100
octets en moyenne en occurrence). Dans des situations plus ordinaires
(moins de 68,000 fichiers de taille moyenne entre 1 et 100 Ko), ext2 est sans
surprise le plus performant. Ensuite, ext3 et reiserfs se partagent la vedette,
tandis que xfs et jfs sont très légèrement en retrait. Noter que xfs est
connu pour sa lenteur dans l'effacement des fichiers. Bien que les
choses se soient améliorées dans le noyau 2.4.18, le problème n'est pas
encore résolu. Jfs souffre également des mêmes handicapes, mais je ne sais pas
si c'est un problème connu.
Un test de la "vie réelle" qui consiste à
copier les sources du noyau 2.4.16 vers la partition de test,
compiler le noyau et effacer les sources. Dans ce test, ext3 et
reiserfs sont équivalents. Avec un petit avantage pour reiserfs
sur
x2a. Voir aussi un autre
petit test
sur un portable.
Bonnie Le test est effectué sur un fichier
de taille 4 fois la Ram. L'écart entre les systèmes de fichiers n'est
pas vraiment significatif à mes yeux. Noter cependant la performance
d'ext3 en ré-écriture séquentielle.
Bonnie++ Par ordre de performance:
ext3, reiserfs, xfs, jfs.
PostMark Bench simulant un serveur de mail.
La différence est très claire entre les systèmes de fichiers: par
ordre de performance: ext3, reiserfs, xfs, jfs.
Postal Un autre bench sur le serveur de mail.
Ici la tendance s'inverse ! On trouve dans l'ordre jfs, xfs, ext3,
et assez loin derrière, reiserfs. Ce test donne des résultats très variables
(pour un même système de fichiers) sur
home. Je décide de ne pas les
publier.
Dbench Ici, reiserfs est nettement meilleur.
Suivi de xfs, ext3, et loin derrière par jfs. À noter un problème
d'instabilité (plantage du système) sous xfs. Curieusement, sur
x2a, un noyau mono-processeur est plus rapide en situation
de haute charge pour tous les systèmes de fichiers,
Occupation d'espace disque Reiserfs
est le plus économique pour les petits fichiers. En effet il prend 5 fois
moins de place que les autres après la création de 800,000 fichiers de taille
moyenne de 100 octets. En revanche, pour des fichiers de taille moyenne de 1 Ko,
la différence est faible entre les différents systèmes de fichiers avec un
avantage d'environ 20% pour reiserfs.
Quelques URL sur les systèmes de fichiers
Ext3 pour noyaux 2.4.
Un document en
français sur ext3 rédigé par votre serviteur (la fin du document
contient d'autres liens sur ext3).
Site de reiserfs.
Site de xfs.
Site de jfs.
Quelques URL de benchmarks sur les systèmes de fichiers
Les bench
par Namesys.
Des tests
réalisés par Matteo Dell'Omodarme.
Linux Benchmark Suite Homepage (les outils
de tests).