Bonjour, Le 30/01/2020 à 11:22, Dernat Rémy a écrit :
A mon avis tu dois avoir du cache quelque part...
Oui, il y a le cache (mémoire) intégré à ZFS, mais pas de L2ARC. Il y a 96Go de RAM sur l'hôte de virtualisation (il y avait une erreur dans ma description initiale).
Sinon, est-ce que tu as activé de la compression à la volée ?
Oui la compression est active. $ zfs get all | grep compression [...] rpool/data compression on inherited from rpool
As-tu calculé les débits théoriques sur les disques ?
Il s'agit de disques SATA Entreprise à 7200tr/min dont l'interface est à 6 Gbps. On peut écrire de manière soutenue à environ 190 Mo/s sur un disque monté en direct (sans ZFS). $ fio --name=seqfile --ioengine=libaio --iodepth=32 --rw=write --bs=16k --direct=1 --size=4G --numjobs=8 --group_reporting [...] write: IOPS=11.6k, BW=181MiB/s (189MB/s)(32.0GiB/181426msec) Je n'ai pas de problème particulier avec le débit disque en lui même. Ce qui me questionne, c'est l'ordre de grandeur entre le débit sur le système de fichier et le débit effectif résultant sur le sous-système disque selon le type d'écriture: -> en écriture aléatoire : fichier 2 Gbps --> ZFS --> disques 11 Gbps -> en écriture séquentielle : fichier 8 Gbps --> ZFS --> disques 10 Gbps Est-ce que tu as des ordres de grandeur similaires en écriture aléatoire vs séquentielle sur ton infra ? Merci. -- Emmanuel DECAEN
Le 29/01/2020 à 14:44, Emmanuel DECAEN a écrit :
Bonjour,
Depuis quelques semaines, je teste la solution Proxmox VE 6.1. Il y a beaucoup de choses intéressantes, mais j'avoue avoir des surprises avec la partie ZFS pour la virtualisation.
J'ai une petite maquette avec un ancien serveur Dell : - Chassis R730XD 12 slots - 256 Go de RAM - 10 disques SATA Entreprise 6 To en ZFS RAID z2 mode HBA - 2 SSD SAS 1,8 To non utilisés pour le moment (ni ZIL, ni L2ARC).
Quand je fais un test sur l'hôte de virtualisation (Proxmox) avec fio, j'obtiens ceci:
$ fio --name=randfile --ioengine=libaio --iodepth=32 --rw=randwrite --bs=16k --direct=1 --size=4G --numjobs=8 --group_reporting [...] write: IOPS=13.8k, BW=216MiB/s (227MB/s)(32.0GiB/151568msec)
==> fio : 227 Mo/s
Côté iostat sur l'intervalle de temps: $ iostat -xm 60 avg-cpu: %user %nice %system %iowait %steal %idle 0.29 0.00 30.98 9.80 0.00 58.93
Device r/s w/s rMB/s wMB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util sda 0.05 2185.70 0.00 133.04 0.00 5.00 0.00 0.23 21.00 3.34 2.71 4.00 62.33 0.35 77.37 [...] (8 lignes similaires) sdj 0.02 2169.40 0.00 133.04 0.00 4.70 0.00 0.22 48.00 3.45 2.90 4.00 62.80 0.36 77.13
==> iostat: 1330 Mo/s
Côté zpool iostat sur l'intervalle de temps: $ zpool iostat -v 60 capacity operations bandwidth pool alloc free read write read write ------------------------------------------ ----- ----- ----- ----- ----- ----- rpool 73.2G 54.5T 0 19.4K 2.33K 1.30G raidz2 73.2G 54.5T 0 19.4K 2.33K 1.30G ata-ST6000NM0024-1HT17Z_xxxxxxxx-part3 - - 0 1.93K 204 133M [...] (8 lignes similaires) ata-ST6000NM0024-1HT17Z_xxxxxxxx-part3 - - 0 1.92K 68 133M
==> zfs iostat: 1300 Mo/s
Le débit est cohérent entre iostat et zfs iostat. Comment expliquer la différence entre l'écriture faite par fio à 227 Mo/s et celle relevée par les iostat à 1300 Mo/s ?
Le fonctionnement de ZFS en RAID z2 + journal doit aboutir à un facteur 6 côté débit ?
Merci. -- * *Emmanuel DECAEN