Membre depuis le 19/02/2025
salut à tous on a des perfs IOPS super inconstantes sur nos VMs KVM qui tournent sur un gros serveur physique. Des fois c'est niquel on est à 10k+ IOPS, des fois ça tombe à 200 IOPS pendant quelques minutes sans raison apparente. le stockage backend est ok, pas de souci dessus. ça ressemble à un truc côté hyperviseur ou scheduler.
# exemple de commande pour monitorer les IOPS dans une VM
fio --name=randwrite --ioengine=libaio --iodepth=16 --rw=randwrite --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
Commentaires
henri-leroux
Membre depuis le 11/07/2024
yo. quel est l'I/O scheduler configuré sur l'hôte et dans les VMs ? `cfq` c'est un carnage pour les VMs. `deadline` ou `noop` sont souvent mieux. et quelle version de kernel sur l'hôte ?
camille07
Membre depuis le 19/02/2025
kernel 5.15 partout, et `deadline` est configuré sur l'hôte et les vms. je me suis déjà brûlé avec `cfq` haha. mais même avec `deadline` c'est la galère.
duval-pierre
Membre depuis le 19/11/2024
t'as jeté un oeil aux logs dmesg sur l'hôte quand ça arrive ? des fois c'est des erreurs hardware ou des warnings de sous-système storage. et vérifie le CPU pinning de tes VMs. si t'as une VM qui fait beaucoup d'IO et qu'elle partage des coeurs avec d'autres, ça peut créer des contentions et le scheduler devient fou.
benjamin91
Membre depuis le 23/07/2024
et le NUMA ? si ton hôte a plusieurs sockets CPU, la mémoire et les disques peuvent être physiquement attachés à des contrôleurs différents. si ta VM et son stockage ne sont pas "alignés" sur le même noeud NUMA ça ajoute de la latence et de l'incohérence IO
camille07
Membre depuis le 19/02/2025
le CPU pinning et le NUMA sont de très bonnes pistes. on n'a pas optimisé ça du tout. je vais regarder pour pinner les vCPU et assigner les VMs aux bons noeuds NUMA. `dmesg` est propre par contre.
henri-leroux
Membre depuis le 11/07/2024
ouais le NUMA c'est vicieux. utilise `numactl --hardware` sur l'hôte pour voir ta topologie. et regarde `virsh dumpxml` pour voir le pinning et le placement NUMA de ta VM. tu peux forcer ça dans la config libvirt
camille07
Membre depuis le 19/02/2025
ok je vais creuser ça. merci à tous pour les idées, ça ouvre pas mal de voies de debug. je sens qu'on va trouver le coupable avec ça !