Storage Benchmarking
Apprenez à évaluer les performances de votre Cloud Disk Array
Apprenez à évaluer les performances de votre Cloud Disk Array
Dernière mise à jour le 23/05/2019
Avant de commencer les tests d'évaluation, familiarisez-vous avec votre environnement. Même les petits détails manqués peuvent invalider votre benchmark. Par exemple, il est inutile de tester les performances de votre Cloud Disk Array d'un datacenter différent. Les latences entre les datacenters sont trop élevées durant le fonctionnement pour une telle évaluation.
Il est également très important de sélectionner les métriques appropriées à votre cas. Si vous prévoyez d'analyser une base de données, le nombre total d'E/S par seconde (IOPS) disponibles de 8 Ko par bloc sera probablement plus important que la bande passante totale avec de grandes E/S. Si vous envisagez d'utiliser Hadoop, les besoins en stockage seront totalement différents.
Dans notre cas, nous essayons de trouver un équilibre entre différentes charges de travail. Nous utilisons Fio — un outil d'évaluation très populaire. Il fournit de nombreuses options réglables pour simuler la charge de travail souhaitée et fournit des statistiques détaillées sur le comportement du stockage sous charge. Il est également disponible gratuitement sur un large éventail de systèmes d'exploitation.
Ce guide vous apprend à effectuer une évaluation de votre Cloud Disk Array.
Assurez-vous que le client utilisé pour le test a accès à votre Cloud Disk Array. Vous pouvez vérifier cela en exécutant la commande suivante :
$ ceph -s
cluster 3eb69d65-fec7-4e05-91c0-7fe07b6fed1a
intégrité_OK
monmap e1: 3 mons à {mon-01-3eb69d65-fec7-4e05-91c0-7fe07b6fed1a=10.a.b.x:6789/0,mon-02-3eb69d65-fec7-4e00 5-91c0-7fe07b6fed1a=10..a.b.y:6789/0,mon-03-3eb69d65-fec7-4e05-91c0-7fe07b6fed1a=10.a.b.z:6 789/0}
election epoch 50, quorum 0,1,2 mon-01-3eb69d65-fec7-4e05-91c0-7fe07b6fed1a,mon-02-3eb69d65-fec7-4e05-91c0-7fe07b6fed1a,mon-03-3eb69d65-fec7-4e05-91c0-7fe07b6fed1a
osdmap e52: 3 émissions: 3 en haut, 3 en haut
pgmap v2709: 64 pages, 1 pool, 8 3255 Mo de données, 1 300 objets
261 Go utilisés, 1 6401 Go/1 662 Go disponibles
64 actifs+propres
Si vous obtenez un résultat similaire à celui ci-dessus, vous pouvez commencer à préparer l'image pour le test grâce à cette commande :
rbd -p rbd create --size 1024 --image-format 2 test-image
Vous pouvez tester les performances dans trois situations différentes :
/dev/rbd
;L'utilisation de la première méthode exécute Fio comme dans l'exemple ci-dessous :
fio --name=test-1 --ioengine=rbd --pool=rbd --rbdname=test-image --numjobs=1 \
--rw=randwrite --bs=4k --iodepth=32 --fsync=32 \
--runtime=600 --time_based --group_reporting
Lors de l'exécution d'un benchmark sur un périphérique /dev/rbd\
ou à partir d'une machine virtuelle interne, certains facteurs peuvent affecter les performances :
Selon la taille de votre cluster, vous pouvez tester un plus grand nombre d'images ou utiliser différents paramètres. Généralement, vous pouvez modifier le nombre d'images, leur taille, la taille de la file d'attente, le nombre de FIO workers, le type de charge de travail (lecture/écriture/aléatoire/séquentiel), la durée du test, etc.
fio --name=test-1 --ioengine=rbd --pool=rbd --rbdname=test-image --numjobs=1 \
--rw=randrw --rwmixread=40 --bs=4k --iodepth=32 --fsync=32 \
--runtime=600 --time_based --group_reporting
fio --name=test-1 --ioengine=rbd --pool=rbd --rbdname=test-image --numjobs=1 \
--rw=read --bs=1M --iodepth=32 --fsync=32 \
--runtime=600 --time_based --group_reporting
Ce test générera quatre processus de Fio, chacun s'écrivant sur une image distincte à l'aide de deux threads.
fio —runtime=600 —time_based —group_reporting \
--name=test-1 --ioengine=rbd --pool=rbd --rbdname=test-image-1 --numjobs=2 \
--rw=randwrite --bs=4k --iodepth=32 --fsync=32 \
--name=test-2 --ioengine=rbd --pool=rbd --rbdname=test-image-2 --numjobs=2 \
--rw=randwrite --bs=4k --iodepth=32 --fsync=32 \
--name=test-3 --ioengine=rbd --pool=rbd --rbdname=test-image-3 --numjobs=2 \
--rw=randwrite --bs=4k --iodepth=32 --fsync=32 \
--name=test-4 --ioengine=rbd --pool=rbd --rbdname=test-image-4 --numjobs=2 \
--rw=randwrite --bs=4k --iodepth=32 --fsync=32
fio --name=test-1 --ioengine=rbd --pool=rbd --rbdname=test-image --numjobs=1 \
--rw=randrw --rwmixread=40 \
--bssplit=64k/47:4k/22:16k/12:8k/6:512/5:32k/4:12k/3:256k/1,8k/89:4k/11 \
--iodepth=32 --fsync=32 \
--runtime=600 --time_based --group_reporting
Pour mesurer les performances d'une baie de disques virtuels, nous effectuons des tests sur 32 images, chacune d'une taille de 32 Go, ce pendant quelques heures. L'utilisation de jeux de données volumineux pendant les tests nous garantit que les performances resteront à un niveau spécifié.
Rendez-vous sur notre chaîne Discord dédiée : https://discord.gg/ovhcloud. Posez des questions, fournissez des commentaires et interagissez directement avec l'équipe qui construit nos services de stockage et de sauvegarde.
Rejoignez notre communauté d'utilisateurs sur https://community.ovh.com/fr/.
N’hésitez pas à nous proposer des suggestions d’amélioration afin de faire évoluer cette documentation.
Images, contenu, structure… N’hésitez pas à nous dire pourquoi afin de la faire évoluer ensemble !
Vos demandes d’assistance ne seront pas traitées par ce formulaire. Pour cela, utilisez le formulaire "Créer un ticket" .
Merci beaucoup pour votre aide ! Vos retours seront étudiés au plus vite par nos équipes..
Accedez à votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres d'OVHcloud Community.
Echanger sur OVHcloud Community