Il y a du mieux mais c'est évidemment trop facile pour les couches.
Dans un premier temps, je ne cherche pas forcément à avoir du
mieux.
Je cherche surtout à comprendre le ratio pour l'aléatoire :-)
Et avec dd en aléatoire ?
Avec le dd de données aléatoires (urandom dans un fichier) en
accès séquentiel, on reste dans le même ordre de grandeur du ratio
que fio en séquentiel.
$ dd if=/mnt/toto of=toto bs=8k oflag=direct
31495651328 bytes (31 GB, 29 GiB) copied, 47.3935 s, 665
MB/s
$ zpool iostat -v 20
capacity operations bandwidth
pool alloc
free read write read write
------------------------------------------ ----- -----
----- ----- ----- -----
rpool 167G
54.4T 5 5.39K 21.8K 859M
raidz2 167G
54.4T 5 5.39K 21.8K 859M
ata-ST6000NM0024-1HT17Z_xxxxxxxx-part3 -
- 0 555 2.40K 85.9M
[...] (lignes suivantes similaires)
$ dd if=/mnt/toto of=toto bs=128k oflag=direct
31495651328 bytes (31 GB, 29 GiB) copied, 31.1648 s, 1.0
GB/s
$ zpool iostat -v 20
capacity operations bandwidth
pool alloc
free read write read write
------------------------------------------ ----- -----
----- ----- ----- -----
rpool 160G
54.4T 7 16.4K 28.4K 1.39G
raidz2 160G
54.4T 7 16.4K 28.4K 1.39G
ata-ST6000NM0024-1HT17Z_xxxxxxxx-part3 -
- 0 1.63K 2.40K 143M
[...] (lignes suivantes similaires)
30 janvier 2020 13:28 "Emmanuel DECAEN" <Emmanuel.Decaen@xsalto.com> a écrit:
Bonjour,Le 30/01/2020 à 09:42, Maxime G. a écrit :Bonne question...Juste au niveau de fio, que donne un test en écriture séquentielle ?
En écriture séquentielle, le ratio est de l'ordre de 1,3.$ fio --name=seqfile --ioengine=libaio --iodepth=32 --rw=write --bs=16k --direct=1 --size=16G --numjobs=8 --group_reporting
[...]
write: IOPS=50.4k, BW=788MiB/s (827MB/s)(128GiB/166288msec)
$ iostat -xm 60
avg-cpu: %user %nice %system %iowait %steal %idle
0.55 0.00 22.43 15.65 0.00 61.38
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.20 1488.47 0.00 109.80 0.00 3.97 0.00 0.27 85.33 4.29 3.46 4.00 75.54 0.42 62.32
[...] (8 lignes similaires)
sdj 0.23 1444.97 0.00 109.81 0.00 3.55 0.00 0.25 88.29 4.67 3.91 4.00 77.82 0.43 61.79
$ zpool iostat -v 60
capacity operations bandwidth
pool alloc free read write read write
------------------------------------------ ----- ----- ----- ----- ----- -----
rpool 198G 54.4T 2 12.8K 9.40K 1.07G
raidz2 198G 54.4T 2 12.8K 9.40K 1.07G
ata-ST6000NM0024-1HT17Z_xxxxxxxx-part3 - - 0 1.25K 750 109M
[...] (8 lignes similaires)
ata-ST6000NM0024-1HT17Z_xxxxxxxx-part3 - - 0 1.22K 887 109M
------------------------------------------ ----- ----- ----- ----- ----- -----Fio : 827 Mo/s
Iostat: 1090 Mo/sSoit un ratio d'environ 1.3, bien loin du ratio de 6 pour l'écriture aléatoire.
29 janvier 2020 14:44 "Emmanuel DECAEN" <Emmanuel.Decaen@xsalto.com> 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/sCô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/sCô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
Merci.
--
Emmanuel DECAEN