salut. déjà t'es sur quel kernel et quel io scheduler ? `cat /sys/block/sdx/queue/scheduler` pour voir. si t'es en `cfq` ou `deadline` pour un nvme c'est pas top. `mq-deadline` ou `none` (pour le driver nvme directement) sont souvent mieux.
et ton `discard` ? si tu fais beaucoup de writes et de deletes, un discard synchrone peut te plomber. t'es en `fstrim -v` en batch ou `mount -o discard` ? la deuxième option peut être problématique.
le scheduler est en `mq-deadline` et le fstrim est un cron hebdo. pas de `discard` au mount. la vm est une debian 11 avec un kernel 5.10.0-23-amd64. j'ai essayé de passer `noop` mais pas de changement significatif.
hmm si `mq-deadline` est déjà là c bizarre. t'as regardé la métrique `iostat -x 1` ? le `%util` et `await` peuvent donner des indices. et le `latency_histogram` si t'as un outil comme `fio` ou `blkparse` ?
des fois c'est pas le disque direct mais la mémoire. si t'as beaucoup de swap activity ou de pages caches qui sont vidées, ça peut impacter l'io. check `vmstat 1` et les stats du `swappiness` et `vfs_cache_pressure`.
vmstat montre que le swap est presque inactif, et le cache est stable. %util d'iostat est souvent bas, genre 5-10% même pendant les pics de latence. le `await` par contre monte à 200-300ms. c'est ça le souci.
si le %util est bas et `await` haut ça sent le problème côté hyperviseur ou le stockage derrière. la vm demande de l'io mais le backend met du temps à répondre même s'il est pas saturé. t'as d'autres vms sur le même host ou le même pool de stockage qui se comportent comme ça ? ptete un overprovisioning sauvage.
c'était bien ça. j'ai ouvert un ticket chez le provider et ils ont confirmé un souci sur le SAN derrière. ils ont migré ma VM sur un autre hôte et depuis c nickel chrome. thx pour le coup de main c'était précieux !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
yperrin
Membre depuis le 04/10/2024actif
yo la team linux, j'ai une vm sur un cloud provider (pas aws) avec un disque nvme censé être ultra rapide. mais en prod j'ai des pics de latence I/O de ouf. je parle de centaines de ms alors que ça devrait être sous la milliseconde.
le `iotop` montre que mon app est la seule à faire de l'io mais la latence est pas expliquée par le débit qui est faible. y'a un truc au niveau du kernel ou du scheduler que je peux regarder ?