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.