A mon avis tu dois avoir du cache quelque part...
Sinon, est-ce que tu as activé de la compression à la volée ?
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