Suite à un article récent d’Ivan Voras indiquant que 2 patchs améliorant sensiblement les performances de ZFS venaient d’être ajouté à la branche 8-STABLE. J’ai passé le NAS dont on cause ici et ici en 8-STABLE : raidz est réparti sur 3 disques reliés à un contrôleur SATA d’entrée de gamme, le pool est actuellement occupé à 50%.

Bien entendu afin de quantifier l’impact des dernier patchs, j’ai fais quelques bench avant (8.1-RELEASE à jour) et après (8-STABLE compilé il y a une semaine). Le protocole de test est assez simple : on lance un iozone avec 5 threads concurrents sur une partition ZFS. Deux cas différents ont été testés : le cas de « petits » fichiers (100 Mo par fichier) : les 1024 Mo de RAM du serveur permettent alors de cacher au moins une partie des fichiers de tests, dans le deuxième cas de test, les fichiers font 1 Go. Pour chaque test, la taille de l’enregistrement était paramétré à 4 Ko, ce qui est volontairement faible et explique les faibles débits sur les lectures / écritures non séquentielles.

« Petits » Fichiers

Dans ce test, la RAM aide à maintenir les performance lors des accès aléatoires et concurrents. Les gains de performances lors des lectures / écritures parallèles sont impressionnants.


  8.1 8-STABLE Gain
Initial write 23,7 30 26,6%
Rewrite 18,3 21 14,8%
Read 56,1 59,9 6,8%
Re-read 55,4 56,5 2,0%
Reverse Read 46,7 48,2 3,2%
Stride read 3,5 3,8 8,6%
Random read 120,5 117,8 -2,2%
Mixed workload 145,6 158,9 9,1%
Random write 1,1 2,1 90,9%
Pwrite 13,6 24,2 77,9%
Pread 23,8 57,6 142,0%

« Gros » fichiers

Dans ce test, la RAM aide beaucoup moins, les gains de performance sont plus faibles mais restent quand même appréciables.


  8.1 8-STABLE Gain
Initial write 22,5 23,8 5,8%
Rewrite 16,2 16,7 3,1%
Read 47,2 54,9 16,3%
Re-read 47,8 56,4 18,0%
Reverse Read 37,1 43,6 17,5%
Stride read 2,7 3,3 22,2%
Random read 0,5 0,5 0,0%
Mixed workload 0,4 0,4 0,0%
Random write 0,3 0,3 0,0%
Pwrite 22,1 24,2 9,5%
Pread 41,9 55,6 32,7%

Conclusion

Les gains de performances des derniers patchs ZFS sont réellement significatif, la compilation d’une version stable n’étant pas forcement adaptée à toute les situations, certains préférons néanmoins attendre la sortie de la prochaine release pour en profiter.