IOPS bizarres sur VMs KVM

Posté par camille07 le 01/12/2025
RÉSOLU

camille07

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

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 !

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire