Quel filesystem pour Linux ?

De guerre lasse, j’ai voulu vérifier les performances des différents systèmes de fichiers présents sous Linux avec l’utilitaire de Benchmarking sysbench, présent dans toutes les principales distributions Linux.

Les conditions du test

J’ai réalisé ce test dans une machine virtuelle Fedora 24 / Noyau 4.7 s’exécutant dans VirtualBox sous Windows. J’ai ajouté à cette machine un disque de 8 Go au format VDI, avec une gestion du stockage fixe, sur un disque physique Seagate ST2000DM001-1ER164 de 2 To.

Quel filesystem pour Linux ?

Utilisation de sysbench

Après avoir partitionné avec fdisk, les commandes suivantes sont à effectuer sur la partition du disque ajouté (/dev/sdb1 pour ma part) :

mkdir /mnt/sdb1
mkfs -t ext4|jfs|btrfs|xfs|reiserfs /dev/sdb1
mount /dev/sdb1 /mnt/sdb1
cd /mnt/sdb1
sysbench --test=fileio --file-total-size=4G prepare
sysbench --test=fileio --file-total-size=4G --file-test-mode=rndrd --max-time=5 run
sysbench --test=fileio --file-total-size=4G --file-test-mode=rndwr --max-time=5 run
sysbench --test=fileio --file-total-size=4G cleanup
cd /mnt
umount /mnt/sdb1

Les résultats du test

Les résultats sont exprimés, dans le tableau ci-dessous, en Mo/s :

  Read (Mo/s) Write (Mo/s)
Ext4 609.160 86.580
Xfs 672.000 93.125
Btrfs 502.650 31.753
Jfs 733.160 27.184
ReiserFs 621.440 87.460
Moyenne 627.682 65.220
Ntfs 129.560 61.419

Synthèse : the winner is… xfs !

Btrfs apparaît comme le système le moins performant. Jfs est le plus rapide en lecture ; Xfs en écriture. Xfs semble aujourd’hui le meilleur compromis en termes de performances pour vos systèmes de fichiers Linux. L’inconvénient de Xfs, c’est que le système de fichiers ne peut pas être réduit lorsqu’il est encapsulé dans un groupe de volumes LVM. Seuls les systèmes de fichiers ext4 peuvent être retaillés à chaud avec LVM !

NB Je n’ai pas testé le système de fichier Nilfs2.

Linux  / Btrfs Ext4 Fedora Formateur Fedora Formateur Linux Jfs Linux Partitionnement ReiserFs Sysbench Xfs 

Commentaires

On peut m’expliquer comment c’est possible d’atteindre plus de 700 Mo sur un disque dur alors que même sur un SSD on sature déjà le bus SATA3 avant d’atteindre une telle vitesse ?
De plus, ZFS est de plus en plus utilisé (avec ZFS on Linux), je ne le vois pas testé ici.
Aussi, qu’en est-il des différents scénarios d’utilisation ? Ces vitesses correspondent-elles à des milliers de petits fichiers ou un gros fichier ?
(Je recommanderais de refaire ces tests en dehors d’une VM pour avoir des résultats plus proches des cas d’utilisations habituels )

@Yann

Les environnements de production sont de plus en plus virtualisés. Ce qui est intéressant, ce sont les valeurs relatives.

sysbench fait une série de lectures et d’écritures aléatoires. 156 Mo pour 4 Go (128 fichiers * 32 Mo). J’ai activé le cache du host au niveau de VirtualBox.

ZFS sur Fedora ?

NB Ma machine dispose de 16 Go de RAM !

Si tu as d’un autre côté, les limites de taille de fs suivant le type, ce serait sympa à comparer (me rappelle d’un vague 16To pour l’ext4).

@Liandri

Je l’ai déjà fait et c’est à lire !

C’est marrant comme sous linux, je n’obtiens pas les mêmes résultats. De plus je suis étonné de voir que tu arrives à des debits de 700mo/s sur un disque qui en lecture ne dépasse pas les 210mo/s maximum..
De plus tu utilises un format qui n’est jamais utilisé en production pour de la virtualisation.. avec une VM sous qemu en qcow2 et en btfrs j’obtiens en écriture un gentil 70mo/s ce qui me laisse franchement douter de la qualité de ton test. À bon entendeur.

Le plus hallucinant c’est le système Ntfs…
Quelle foudroyant plaidoyer pour Microsoft. 😂

@Cube

Mon test est sérieux. Tout ce qu’il y a de sérieux ! Je ne vais pas m’amuser à raconter n’importe quoi. Demain, je le fais sur une machine physique.

Merci bien, je n’avais pas vu ou retenu ce post du coup :0

Laisser un commentaire

(requis)

(requis)