Performances I/O aléatoires sur serveur Linux avec SSD NVMe

dasilva-gilbert 12/12/2025
RÉSOLU
dasilva-gilbert
Auteur Actif
Avatar de dasilva-gilbert
dasilva-gilbert
Auteur Actif

Salut l'équipe ! J'ai un serveur de prod avec des nvme (raid0 software) et je vois des perfs i/o super bizarres. la plupart du temps c'est ok genre 200k iops pour du random read mais de temps en temps ça tombe à 50k iops pendant quelques minutes puis ça remonte. c'est super aléatoire j'arrive pas à reproduire facilement

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=/dev/nvme0n1 --bs=4k --iodepth=64 --size=10G --readwrite=randread --runtime=60 --group_reporting

le cpu est pas à fond la mémoire est ok. le disk usage non plus. des idées de où chercher ? ça rend les applis super lentes par intermittence

12/12/2025 à 13:20

8 commentaires

ines68
Membre Actif Secouriste
Avatar de ines68
ines68
Membre Actif Secouriste

check le scheduler i/o. par défaut sur les nvme c souvent mq-deadline ou none. si t'es sur cfq ou noop pour une raison obscure ça peut faire des merdes. regarde la sortie de cat /sys/block/nvme0n1/queue/scheduler

aussi, t'as regardé les logs du kernel pour des erreurs nvme ? dmesg -T | grep -i nvme

13/12/2025 à 11:28
dasilva-gilbert
Auteur Actif
Avatar de dasilva-gilbert
dasilva-gilbert
Auteur Actif

non le scheduler est bien sur none pour les nvme. pas d'erreurs nvme dans les logs. c'est vraiment silencieux en fait. mais les perfs sont en yoyo. ptete un souci de thermal throttling sur le nvme ? mais c'est un serveur rack avec bonne ventilation

14/12/2025 à 07:22
sebastien82
Membre
Avatar de sebastien82
sebastien82
Membre

on a eu un truc similaire c'était le trim qui se déclenchait. si le fstrim.timer est actif et qu'il purge trop agressivement ça peut bloquer les i/o le temps que ça nettoie. regarde les logs de systemd pour fstrim et si t'as des crons qui le lancent

systemctl status fstrim.timer
journalctl -u fstrim.service

si c'est ça tu peux l'espacer ou le désactiver pour voir si ça change

15/12/2025 à 06:41
dasilva-gilbert
Auteur Actif
Avatar de dasilva-gilbert
dasilva-gilbert
Auteur Actif

ah le trim c'est une bonne piste ! on utilise xfs et j'ai pas pensé au trim. je vais regarder ça de suite. si c'est ça je le désactive et je teste les perfs à nouveau

16/12/2025 à 04:31
ines68
Membre Actif Secouriste
Avatar de ines68
ines68
Membre Actif Secouriste

si c'est le trim attention à pas le désactiver complètement sans solution alternative sur le long terme. les nvme ont besoin du trim pour maintenir leurs perfs surtout en écriture. tu peux le faire manuellement pendant les fenêtres de maintenance ou utiliser un discard mount option si ton système de fichiers le supporte bien

17/12/2025 à 00:34
dasilva-gilbert
Auteur Actif
Avatar de dasilva-gilbert
dasilva-gilbert
Auteur Actif

d'acc je note pour le trim. j'ai désactivé le fstrim.timer et j'ai lancé un fio long terme... ça fait 2h et pas de drop de perf ! bordel c'était bien ça. je vais regarder comment gérer ça proprement maintenant

17/12/2025 à 19:01
sebastien82
Membre
Avatar de sebastien82
sebastien82
Membre

super ! pour xfs le discard mount option (mount -o discard /dev/nvme0n1 /mnt/point) ça peut être une bonne solution ça fait du trim en continu en arrière plan sans impacter la prod comme un fstrim complet

18/12/2025 à 14:55
dasilva-gilbert
Auteur Actif
Avatar de dasilva-gilbert
dasilva-gilbert
Auteur Actif

thx pour le conseil discard je vais tester ça en préprod. merci à tous pour l'aide ça m'a sauvé !

19/12/2025 à 13:09

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