Performances I/O catastrophiques sur une VM Linux

roger-paul 27/08/2024
RÉSOLU
roger-paul
Auteur Actif
Avatar de roger-paul
roger-paul
Auteur Actif

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

27/08/2024 à 09:20

8 commentaires

jantoine
Membre
Avatar de jantoine
jantoine
Membre

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

28/08/2024 à 05:21
cecile30
Membre
Avatar de cecile30
cecile30
Membre

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

29/08/2024 à 03:33
roger-paul
Auteur Actif
Avatar de roger-paul
roger-paul
Auteur Actif

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

29/08/2024 à 23:19
constance-techer
Membre Actif
Avatar de constance-techer
constance-techer
Membre Actif

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

30/08/2024 à 20:46
jantoine
Membre
Avatar de jantoine
jantoine
Membre

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

31/08/2024 à 19:47
cecile30
Membre
Avatar de cecile30
cecile30
Membre

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

01/09/2024 à 15:01
roger-paul
Auteur Actif
Avatar de roger-paul
roger-paul
Auteur Actif

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

02/09/2024 à 13:49
roger-paul
Auteur Actif
Avatar de roger-paul
roger-paul
Auteur Actif

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

03/09/2024 à 11:19

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