Performance I/O disque catastrophique sur VM Linux

Posté par ramos-cecile le 03/06/2024
RÉSOLU

ramos-cecile

Membre depuis le 28/09/2023

bonjour les devs

on a des vm linux sur vmware qui ont des perfs i/o disque vraiment nazes. on parle de quelques dizaines de mb/s en lecture/écriture séquentielle sur des disques censés être rapides. c'est une rhel 8, on fait des tests avec fio. le même workload sur une vm avec un autre os (windows) tourne beaucoup mieux. on a l'impression que le kernel linux gère mal un truc. des idées de ce qu'on peut regarder ?

# exemple de commande fio
fio --name=test --ioengine=libaio --rw=randwrite --bs=4k --numjobs=4 --size=1G --runtime=60 --group_reporting

Commentaires

paulette-simon

Membre depuis le 12/05/2024

salut tu as quel scheduler i/o sur tes disques ? sur les vmware le default c'est souvent cfq ou deadline mais pour les vm block storage moderne genre paravirtualized c'est souvent noop ou mq-deadline qui donne les meilleures perfs. regarde avec cat /sys/block/sdX/queue/scheduler et essaie de changer

maggie-didier

Membre depuis le 21/05/2024

oui le scheduler c'est la première chose. aussi, est-ce que tes vmware tools sont à jour ? et tes drivers paravirtualisés genre virtio ou vmxnet3 pour le réseau et pvscsi pour le disque sont bien utilisés ? des fois c'est les vieux drivers emulés qui plombent tout

ramos-cecile

Membre depuis le 28/09/2023

le scheduler est mq-deadline. j'ai vérifié les vmware tools ils sont à jour. et on utilise bien pvscsi pour les contrôleurs disques. le problème persiste. le cpu de la vm est pas surchargé le memory est ok. juste le i/o qui est lent à mourir

lebreton-guy

Membre depuis le 08/05/2024

y'a ptete un souci sur le hypervisor même. check le datastore où sont tes vm. s'il est partagé avec plein d'autres vm qui font beaucoup d'i/o ça peut saturer les iops ou la bande passante. et côté vmware y'a des limites d'iops configurables par vm tu as regardé si c'était pas cappé trop bas

paulette-simon

Membre depuis le 12/05/2024

en plus des limites sur vmware check aussi le max_sectors_kb et nr_requests pour ton device dans /sys/block/sdX/queue. si ces valeurs sont basses ça peut limiter la profondeur de queue et donc le débit max. pour de grosses charges i/o il faut des queues profondes

ramos-cecile

Membre depuis le 28/09/2023

le datastore est un nvme et les autres vm dessus sont calmes. pas de limitation iops configurée sur la vm. je vais regarder les paramètres de queue. par contre j'ai vu que sys/block/sdX/queue/rotational était à 1 alors que c'est un ssd. bizarre non ?

maggie-didier

Membre depuis le 21/05/2024

ah ça c'est une très bonne piste ! si rotational est à 1 le kernel pense que c'est un disque rotatif et adapte ses heuristiques de scheduling en conséquence ce qui est catastrophique pour un ssd. essaie de le passer à 0 avec echo 0 > /sys/block/sdX/queue/rotational. ça peut faire des miracles

ramos-cecile

Membre depuis le 28/09/2023

j'ai mis rotational à 0 et relancé fio. les perfs ont explosé ! on est passés de 50mb/s à plus de 500mb/s. c'était ça le problème. le kernel pensait que c'était un hdd physique. merci à tous pour l'aide c'était pas évident à trouver

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