Je n’avais utilisé ZFS que pour de la station de travail et je trouve mon serveur parfois poussif. Certes, cet un agrégat de petits SATA, en RAIDz-1, mais ça me surprend.
Il faut que je regarde de plus près la configuration de ZFS mais je voulais aussi faire un test de vitesse qui me servirait notamment de point de comparaison pour la suite.
J’utilise Bonnie++, (vieil) utilitaire de benchmark de système de fichiers dont voici le man (« manuel ») et le site de son auteur.
On l’installe tout simplement via apt par exemple
sudo apt-get install bonnie++
Il y a plusieurs manière de l’utiliser, voici un exemple simple :
bonnie++ -d /rpool/ -s 48G -n 2 -f -b -u root
-d /rpool = où effectuer le test. /rpool étant un de mes pools RAIDz-1
-s 48G : taille du fichier de test, Bonnie++ recommande le double de la RAM
-n 2 : nombre de fichiers utilisés pour le test
-f : fast mod
-b : pas de buffer d’écriture (pour un accès direct et donc plus réaliste)
-u root : utilisateur d’exécution
[[email protected] aerya]$ bonnie++ -d /rpool/ -s 48G -n 2 -f -b -u rootUsing uid:0, gid:0.Writing intelligently...donestart 'em...done...done...done...done...done...Create files in sequential order...done.Stat files in sequential order...done.Delete files in sequential order...done.Create files in random order...done.Stat files in random order...done.Delete files in random order...done.Version 2.00 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--Name:Size etc /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CPpve 48G 311m 17 226m 22 613m 29 170.4 5Latency 3024ms 542ms 423ms 529msVersion 2.00 ------Sequential Create------ --------Random Create--------pve -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 2 2048 0 +++++ +++ 2048 0 2048 0 +++++ +++ 2048 0Latency 338ms 8us 480ms 348ms 15us 449ms1.98,2.00,pve,1,1641109158,48G,,8192,5,,,318369,17,231080,22,,,627973,29,170.4,5,2,,,,,29,0,+++++,+++,30,0,41,0,+++++,+++,32,0,,3024ms,542ms,,423ms,529ms,338ms,8us,480ms,348ms,15us,449ms
Le résultat est particulièrement imbuvable et on le transcrit en HTML via le code Perl « bon_csv2html » sous la forme de
echo "Résultats" | bon_csv2html > Résultats.html
Comme je suis sur un serveur, je place le résultat dans un serveur Web format Docker
docker run -d \--name=bonniehtml \-p 8053:8080 \-v /home/aerya/docker/bonniehtml:/var/www/html \trafex/php-nginx
Donc
echo "1.98,2.00,pve,1,1641109158,48G,,8192,5,,,318369,17,231080,22,,,627973,29,170.4,5,2,,,,,29,0,+++++,+++,30,0,41,0,+++++,+++,32,0,,3024ms,542ms,,423ms,529ms,338ms,8us,480ms,348ms,15us,449ms" | bon_csv2html > /home/aerya/docker/bonniehtml/Résultats.html
Ce qui me les sert bien en version Web (et lisible)

Maintenant faut bien entendu interpréter les résultats. Ce qui m’intéressait dans l’immédiat ce sont les M/sec des I/O.
Soit 613MB/s en écriture (input) et 311MB/s en lecture (Output).
Ce que je peux confirmer avec dd :
TEST en écriture[[email protected] aerya]$ time sh -c "dd if=/dev/zero of=/rpool/test.tmp bs=4k count=2000000 && sync"2000000+0 records in2000000+0 records out8192000000 bytes (8.2 GB, 7.6 GiB) copied, 9.71033 s, 844 MB/sreal 0m12.822suser 0m1.181ssys 0m7.522sTEST en lecture[[email protected] aerya]$ time sh -c "dd if=/rpool/test.tmp of=/dev/null bs=4k"2000000+0 records in2000000+0 records out8192000000 bytes (8.2 GB, 7.6 GiB) copied, 26.5967 s, 308 MB/sreal 0m26.598suser 0m1.197ssys 0m25.379s
Hey ! Blaireau ! Pourquoi tu nous parles de bonnie++ alors que tu as la même en plus simple et rapide avec dd ?!
Parce que Bonnie++ est plus complet (latence etc) et que c’est un point de comparaison plus fiable et complet quand on veut tweaker un peu ZFS.