Sujet :

Latence IOPS aléatoire sur serveurs MySQL en prod, Kernel I/O scheduler

RÉSOLU

Liste des sujets Répondre Créer un sujet

vincent-marianne

Membre depuis le 07/05/2024

salut les linux gourous

on a des soucis de perf sur nos serveurs mysql. de temps en temps les requêtes prennent une éternité (genre 500ms au lieu de 5ms). on a des disques nvme et ça se manifeste par des pics de latence iops très aléatoires. tout le reste (cpu, ram, réseau) est ok. on se demande si c'est pas le scheduler io du kernel qui fait des siennes. on est sur centos 8 avec kernel 4.18

# infos disque
lsblk -o NAME,ROTA,SCHED,FSTYPE,MOUNTPOINT
NAME        ROTA SCHED FSTYPE MOUNTPOINT
nvme0n1     0    mq-deadline xfs    /var/lib/mysql

guy-bonneau

Membre depuis le 17/03/2025

pour du nvme mq-deadline c'est bien mais en général noop est encore mieux. il laisse le hardware gérer l'ordonnancement. essaye de passer ton scheduler en noop pour le device nvme0n1. ça peut réduire les overheads du kernel. mais avant ça, t'as checké la latence brute du disque avec fio ou ioping ? pour être sûr que le problème vient bien du stack kernel.

abigot

Membre depuis le 17/06/2024

oui noop est le standard pour les nvme. vérifie aussi ton swappiness, si le kernel commence à swapper sur ton nvme ça peut être une cause. même si t'as de la ram libre, un swappiness élevé peut initier du swap inopportun. met le à 1 ou 10. echo 10 > /proc/sys/vm/swappiness

vincent-marianne

Membre depuis le 07/05/2024

bingo ! c'était le scheduler ! j'ai passé nvme0n1 en noop avec echo noop > /sys/block/nvme0n1/queue/scheduler et les latences ont disparu. en fait le mq-deadline faisait parfois des pauses bizarres. merci beaucoup les gars pour le tuyau ! swappiness était déjà bas mais c'était la bonne piste. la prod est sauvée.

Répondre

vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire