Perf disque dégradée sur mes VMs Linux avec gros I/O

Posté par parent-olivier le 08/01/2025
RÉSOLU

parent-olivier

Membre depuis le 17/03/2019

yop les techs ! j'ai un souci de perfs disque sur des vms linux (ubuntu 20.04) qui tournent sur vmware. ce sont des bases de données qui font du gros i/o surtout des writes aléatoires. on a des disques virtuels qui sont mappés sur du nvme physique côté esxi donc ça devrait envoyer. mais on voit souvent des iowait qui montent à 30-40% et les applis sont lentes. `iostat` montre des latences d'écriture élevées. j'ai un peu tout essayé je sèche.

iostat -x 1 5 /dev/sda
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           9.21    0.00    5.89   34.50    0.00   50.40

device            r/s     w/s     rkb/s     wkb/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz arc-sz %util
sda            15.00  950.00    240.00   7600.00     0.00    40.00   0.00   4.00    1.20   25.80   24.00   0.00 100.00

Le %util à 100% même si les r/s et w/s sont pas si dingues. Help !

Commentaires

elisabeth-mahe

Membre depuis le 29/06/2019

salut. si %util est à 100% mais les iops pas énormes ça sent le bottleneck quelque part. t'as vérifié quel I/O scheduler est actif sur /dev/sda ? sur du NVMe le `noop` est souvent le meilleur car l'ordonnancement est fait par le hardware. `cfq` ou `deadline` c'est pas fait pour le SSD

barbier-xavier

Membre depuis le 18/12/2024

exact `noop` c'est le go-to pour le flash storage. tu peux le changer à chaud :

echo noop > /sys/block/sda/queue/scheduler

après faudrait le rendre persistant via grub ou udev rules

parent-olivier

Membre depuis le 17/03/2019

ah merde c'est bien `deadline` qui est actif. j'avais zappé ce point. je vais tester `noop` tout de suite

elisabeth-mahe

Membre depuis le 29/06/2019

aussi check tes options de montage de filesystem. genre `noatime` ça réduit les écritures sur les inodes. et si c'est de l'ext4, le `barrier=0` peut améliorer les perfs en désactivant le cache write-through mais c'est un risque si y'a coupure d'alim (moins un souci sur une VM avec UPS)

perret-danielle

Membre depuis le 05/07/2024

et côté vmware t'as quoi comme mode de disque pour les vmdk ? Thick Provision Eager Zeroed c'est top pour les perfs mais ça prend de la place. Thin Provisioning c'est plus lent sur les premières écritures

parent-olivier

Membre depuis le 17/03/2019

alors le `noop` a déjà fait une grosse différence le iowait est tombé à 10-15%. c'est déjà mieux. pour les options de montage j'ai bien `noatime` mais pas `barrier=0`. les disques vmware sont en Thin Provisioning

barbier-xavier

Membre depuis le 18/12/2024

le Thin Provisioning peut être un facteur sur le long terme car les allocations dynamiques consomment des IOPS de l'hyperviseur. si tu peux passer à Thick Eager Zeroed pour tes disques de base de données ça peut aider encore. et le `barrier=0` c'est une décision de tradeoff perf/sécurité mais sur du vmware c'est souvent acceptable

elisabeth-mahe

Membre depuis le 29/06/2019

essaie aussi de monter avec `data=writeback` si c'est de l'ext4 et que tu peux te permettre une perte de données en cas de crash kernel (peu probable en VM). c'est le plus performant pour les écritures

parent-olivier

Membre depuis le 17/03/2019

ok je vais discuter avec l'équipe infra pour les disques Thick Eager Zeroed. et je vais ajouter `barrier=0` sur mes disques de data. déjà avec le `noop` c'est le jour et la nuit. merci pour l'aide précieuse c'était bien des trucs bas niveau à vérifier

perret-danielle

Membre depuis le 05/07/2024

propre. les réglages kernel et filesystem ça paye toujours sur le i/o intensif

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