Performances I/O catastrophiques sur une VM Linux

Posté par roger-paul le 27/08/2024
RÉSOLU

roger-paul

Membre depuis le 21/07/2024

yo la team

on a une VM Linux qui héberge une base de données (pas RDS on est sur une bête vm avec un block storage attaché) et depuis quelques jours les perf I/O sont dans les chaussettes. on parle de plusieurs centaines de ms pour des opérations disque basiques alors qu'avant c'était genre 2-3ms. ça impacte grave la latence de l'app

la VM tourne sur KVM avec un disque virtio. j'ai checké

iostat -x 1
et le
%util
est à 100% tout le temps avec un
await
énorme. pas de proc qui bouffe le cpu non plus

Commentaires

jantoine

Membre depuis le 20/03/2024

Salut ! Ca ressemble à de la saturation du stockage sous-jacent ou un souci de file system. T'as un monitoring sur ton block storage côté hyperviseur ? Est-ce que d'autres VMs sur le même hôte ont aussi des soucis ? Regarde aussi l'alignement des partitions ça peut flinguer les perf sur les gros IOs si c'est pas bon

cecile30

Membre depuis le 21/07/2024

vérifie le scheduler I/O aussi. si t'es sur un SSD c'est souvent mieux de mettre

noop
ou
deadline
au lieu du classique
cfq
qui est plus pour les disques rotatifs. commande
cat /sys/block/sdX/queue/scheduler
pour voir et
echo noop > /sys/block/sdX/queue/scheduler
pour changer

roger-paul

Membre depuis le 21/07/2024

d'acc je regarde pour le stockage sous-jacent. l'hyperviseur semble ok et les autres vms vont bien. côté alignement des partitions je crois que c'est bon c'est du lvm géré par l'installateur. par contre le scheduler i/o c'est une bonne piste je vais vérifier ça. on est sur des ssd virtuels fournis par le san

constance-techer

Membre depuis le 21/07/2024

c'est aussi ptete de l'over-provisioning côté SAN ? si t'es sur un stockage partagé et qu'un voisin se met à faire plein d'IOs ça peut te pénaliser. et le cache I/O de ta VM est bien activé ? genre

writeback
ou
writethrough
mais pas
none
pour des perf raisonnables

jantoine

Membre depuis le 20/03/2024

oui le cache est critique. si t'as le choix entre

direct sync
ou pas mets plutôt
none
côté VM et laisse le SAN gérer son cache. ça dépend de ton setup et de la résilience voulue. mais en gros si le SAN a déjà de la grosse batterie pour le write cache c'est mieux de pas en ajouter une couche côté VM

cecile30

Membre depuis le 21/07/2024

et une autre chose les versions du kernel et des drivers virtio. t'es à jour ? des fois un vieux driver peut avoir des régressions de perf. et le

discard
(TRIM) il est activé sur ton filesystem ? si c'est pas géré ça peut dégrader les perf sur le long terme avec les SSDs

roger-paul

Membre depuis le 21/07/2024

ok alors le scheduler était bien sur

cfq
je l'ai mis sur
noop
. j'ai aussi vérifié le cache I/O de la VM il était sur
writethrough
je l'ai passé à
none
pour laisser le san gérer. par contre le
fstrim
il était pas activé je viens de le configurer en cron. je redémarre la vm et je regarde les perf

roger-paul

Membre depuis le 21/07/2024

c'est le jour et la nuit ! les latences sont revenues à la normale autour de 5ms. le changement de scheduler et le TRIM ont fait le taf. un grand merci à tous pour les pistes c'était une bonne galère

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