Ce test consiste à 1. Copier les sources /usr/src/linux (2.4.16) vers la partition de test time cp -R /usr/src/linux /testfs/; time sync Les sources se trouvant sur une partition montée en ext3. 2. Copier dans la même partition time cp -R /testfs/linux /testfs/LINUX; time sync 3. Effacement time rm -rf /testfs/LINUX; time sync 4. Compiler le noyau time cd /testfs/linux; make -j4 bzImage modules; time sync (make -j3 bzImage pour la configuration maison) Le répertoire /usr/src/linux (linux-2.4.16 officiel avec patchs xfs et jfs et après make menuconfig) contient 768 sous-répertoires, 11131 fichiers, de taille totale 156 Mo. Parmi ces fichiers, il y en a 2459 de taille inférieure à 1 Ko (find /usr/src/linux -type f -size -1024c |wc -l), 8548 entre 1 et 100 Ko, et 126 de taille supérieure à 100 Ko. Résultats: --------- Les temps sont exprimés en secondes. La ligne "sync" représente le temps réel (real) de la commande sync. Le test a été réalisé une deuxième fois, les résultats varient de très peu. 1. time cp -R /usr/src/linux /testfs/; time sync x2a --------------------------------------------------------------------------------- ext2 ext3 reiserfs xfs jfs --------------------------------------------------------------------------------- real 37.810s 34.757s 26.549s 54.738s 4m12.508s user 0.150s 0.220s 0.210s 0.270s 0.170s sys 2.140s 2.830s 5.000s 4.010s 2.840s sync 5.826s 6.565s 10.579s 4.808s 1.349s --------------------------------------------------------------------------------- home: --------------------------------------------------------------------------------- ext2 ext3 reiserfs xfs jfs --------------------------------------------------------------------------------- real 1m0.754s 1m1.346s 1m7.498s 1m14.371s 1m13.397s user 0.180s 0.140s 0.260s 0.400s 0m0.240s sys 2.620s 3.960s 7.310s 6.700s 0m4.200s sync 5.030s 6.698s 7.159s 3.423s 0m1.023s --------------------------------------------------------------------------------- 2. time cp -R /testfs/linux /testfs/LINUX; time sync x2a --------------------------------------------------------------------------------- ext2 ext3 reiserfs xfs jfs --------------------------------------------------------------------------------- real 35.253s 32.213s 44.228s 52.383s 3m27.179s user 0.120s 0.210s 0.240s 0.110s 0.220s sys 1.620s 2.940s 5.000s 4.720s 2.680s sync 6.255s 6.796s 9.822s 4.598s 0.589s --------------------------------------------------------------------------------- home: --------------------------------------------------------------------------------- ext2 ext3 reiserfs xfs jfs --------------------------------------------------------------------------------- real 37.575s 40.208s 1m12.428s 47.933s 1m11.519s user 0.160s 0.190s 0.340s 0.310s 0.240s sys 3.010s 4.260s 7.270s 7.900s 3.850s sync 4.538s 6.053s 4.435s 2.352s 1.074s --------------------------------------------------------------------------------- 3. time rm -rf /testfs/LINUX; time sync x2a --------------------------------------------------------------------------------- ext2 ext3 reiserfs xfs jfs --------------------------------------------------------------------------------- real 6.972s 7.245s 3.086s 1m17.333s 48.510s user 0.020s 0.010s 0.050s 0.070s 0.030s sys 0.180s 0.540s 1.210s 2.640s 0.800s sync 0.616s 0.569s 0.165s 0.014s 0.039s --------------------------------------------------------------------------------- home: --------------------------------------------------------------------------------- ext2 ext3 reiserfs xfs jfs --------------------------------------------------------------------------------- real 4.907s 7.416 4.242s 15.415s 15.005s user 0.050s 0.020 0.060s 0.120s 0.110s sys 0.230s 0.820 1.480s 3.610s 0.960s sync --------------------------------------------------------------------------------- Remarque: sur la configuration home, après désactivation du cache écriture sur le disque dur (hdparm -W0 /dev/hda), le temps d'effacement sous xfs passe de 15s à 1m52. 4. cd /testfs/linux; x2a: time make -j4 bzImage modules; time sync --------------------------------------------------------------------------------- ext2 ext3 reiserfs xfs jfs --------------------------------------------------------------------------------- real 4m10.460s 4m11.279s 4m12.510s 4m12.241s 4m12.152s user 7m38.730s 7m39.210s 7m39.340s 7m37.490s 7m38.580s sys 32.470s 34.850s 36.590s 38.590s 34.410s sync 0.684s 0.604s 0.341s 0.876s 0.546s --------------------------------------------------------------------------------- home: time make -j3 bzImage; time sync --------------------------------------------------------------------------------- ext2 ext3 reiserfs xfs jfs --------------------------------------------------------------------------------- real 5m27.494s 5m33.867s 5m34.357s 5m36.140s 5m31.520s user 5m12.610s 5m13.070s 5m14.310s 5m13.100s 5m12.850s sys 14.760s 16.590s 16.940s 16.950s 15.830s sync 0.673s 0.463s 0.686s 0.604s --------------------------------------------------------------------------------- Remarque. Il est tout à fait normal que dans ce dernier test qu'il n'y ait quasiment aucune différence entre les systèmes de fichiers. Le goulot d'étranglement est au niveau du CPU ici. Le système de fichiers joue peu de rôle. À titre de comparaison, sur home, voici le temps de compilation dans un système de fichiers résidant entièrement dans la ram: # swapoff -a # mount -t tmpfs -o size=256m /dev/shm /dev/shm # cp -R /usr/src/linux-2.4.16 /dev/shm # cd /dev/shm/linux-2.4.16 # time make bzImage > /dev/null real 5m23.099s user 5m08.940s sys 0m14.120s Soit 2 à 3% de différence qu'avec un système de fichiers traditionnel.