perf i/o disque random sur vm linux

Posté par hugues39 le 15/05/2025
RÉSOLU

hugues39

Membre depuis le 06/07/2021

hello la commu

on a des vm linux (ubuntu 22.04 kernel 5.15) qui tournent sur vmware et on a des perfs i/o disque super random

parfois c'est hyper rapide et d'autres fois pour les mêmes opérations on prend des plombes

c'est surtout sur des write lourds avec des petits fichiers

# exemple de fstab
UUID=xxxx / ext4 defaults,noatime 0 1

j'ai déjà checké le disque côté vmware ça va pas de latence côté hyperviseur

vous avez des pistes côté kernel ou config disk sur la vm ?

Commentaires

christelle-guerin

Membre depuis le 26/07/2024

ça sent l'i/o scheduler

par défaut sur les systèmes récents c'est souvent mq-deadline ou none si nvme

mais pour des vm sur un hyperviseur t'es mieux avec `noop` ou `none`

l'hyperviseur gère déjà l'ordonnancement disque donc ton OS fait du double taf

check cat /sys/block/sdX/queue/scheduler

qhebert

Membre depuis le 05/04/2019

oui `noop` c'est le best practice pour les vm et les disques ssd

si t'es sur `deadline` ou `cfq` ça peut introduire de la latence si y a pas mal de petites i/o

faut aussi regarder le `fio` ou `iostat` pendant les périodes de lenteur pour voir le `await` et `util`

hugues39

Membre depuis le 06/07/2021

effectivement je suis sur `mq-deadline` par défaut sur le volume de data

je vais tester de le passer à `noop`

vous avez des recommandations pour la taille des buffers ou les réglages `dirty_ratio` dans `sysctl` ?

christelle-guerin

Membre depuis le 26/07/2024

pour les buffers `dirty_ratio` et `dirty_background_ratio` ça dépend beaucoup de ta ram et de ton workload

si t'as des gros bursts de writes ça peut aider d'augmenter un peu mais faut faire gaffe à pas allouer trop de ram pour le cache disque et bloquer le système

commence par `noop` c'est souvent le gros gain

qhebert

Membre depuis le 05/04/2019

n'oublie pas le `barrier=0` sur `ext4` dans ton fstab si t'as une batterie de cache sur ton san/hyperviseur

ça peut améliorer les perfs write mais attention si tu perds le courant sans write cache bien protégé tu risques de perdre des données

mais dans un environnement vmware avec un vsan ou un stockage bien géré c'est ok

christelle-guerin

Membre depuis le 26/07/2024

aussi si t'es sur ext4 tu peux voir `commit=N` dans ton fstab pour réduire la fréquence des syncs

par défaut c'est 5s si j'me souviens bien tu peux le passer à 30 ou 60s pour les workloads où la consistance immediate est moins critique

mais attention à la perte de données en cas de crash

hugues39

Membre depuis le 06/07/2021

j'ai passé le scheduler à `noop` et c'est le jour et la nuit les perfs sont beaucoup plus stables et rapides

j'ai aussi mis un `commit=30` dans le fstab pour les volumes non critiques

énorme merci à vous pour les conseils c'était bien l'i/o scheduler le coupable

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