7 commentaires
hello. pour le i/o sur nvme c'est classic. le scheduler i/o par défaut (cfq ou deadline) est pas toujours optimisé pour les ssd/nvme. essaie de passer sur mq-deadline ou noop. noop est souvent le mieux pour du nvme si le controller gère bien l'ordonnancement
echo noop > /sys/block/sdX/queue/scheduler
check aussi les paramètres du disque virtuel côté kvm. le cache mode. si c'est writethrough ou none ça peut avoir un impact énorme sur la latence. writeback c'est rapide mais risqué. idéalement c'est virtio-scsi avec un fsync côté guest
et ne pas oublier les flags vm.swappiness et vm.dirty_ratio. si le kernel flush trop souvent le dirty cache sur le disque ça peut créer des micro-stutter. adapte les à ton workload mysql
sysctl -w vm.swappiness=1
sysctl -w vm.dirty_ratio=10
sysctl -w vm.dirty_background_ratio=5
ok le scheduler i/o en noop ça semble avoir déjà amélioré pas mal de choses. je vais aussi regarder les vm.dirty_ratio et le cache mode qemu. on n'utilise pas de swap en prod mais le swappiness peut impacter le page cache. thx pour toutes ces pistes très utiles
Laisser une réponse
Vous devez être connecté pour poster un message !
salut les pros. on a des vms mysql sur kvm qui ont des perfs i/o super instables. des fois c'est nickel d'autres fois ça rame de ouf. la charge cpu est faible la ram est ok et le stockage est sur du ssd nvme. j'ai l'impression que c'est le kernel qui décide des trucs bizarres. on est sur ubuntu 20.04 avec un kernel 5.4. qqn a déjà vu ça ?