Load average énorme à cause d'iowait sur des disques nvme censés être rapides

Posté par maurice-cousin le 05/10/2024
RÉSOLU

maurice-cousin

Membre depuis le 04/07/2024

Yo la team. j'ai un truc qui me rend fou. sur des serveurs avec des nvme pcie gen4, je me retrouve avec des load average à 30-40+ et un `iowait` à 60-70% alors que la charge applicative est pas dingue. en gros, le système attend après le disque. c'est des nvme super rapides et j'ai pas l'impression d'atteindre leurs limites. `fio` me donne des bons chiffres. mais dès qu'une appli met un peu de pression, BOOM. des pistes ?

# exemple de `top` output
%cpu(s):  0.3 us,  1.2 sy,  0.0 ni, 30.0 id, 68.5 wa,  0.0 hi,  0.0 si,  0.0 st

Commentaires

margaret-toussaint

Membre depuis le 24/09/2024

hello. quel scheduler I/O t'utilises pour tes nvme ? pour les nvme c'est `mq-deadline` qui est recommandé pas le vieux `cfq` ou `deadline` qui sont pour les hdd. check avec `cat /sys/block/nvme0n1/queue/scheduler`

louis43

Membre depuis le 31/08/2024

ouais +1 pour le scheduler. aussi t'as pas des `cgroups` ou `blk-throttling` qui limitent l'i/o à l'insu de ton plein gré ? ça peut masquer les perfs réelles du disque. et t'es sûr que tes filesystems sont bien montés avec les bonnes options (noatime par ex) ?

margaret-toussaint

Membre depuis le 24/09/2024

ton disque est pas quasi plein ? un filesystem très plein peut dégrader énormément les perfs d'écriture. et quelle est la nature de ton I/O ? bcp de petits fichiers écrits aléatoirement ou de gros fichiers séquentiels ? les fsync peuvent aussi causer de gros iowait si l'application en fait trop souvent

foucher-catherine

Membre depuis le 27/04/2020

firmware des nvme à jour ? y'a eu pas mal de bugs sur certains modèles de nvme qui créaient des latences énormes sous charge spécifique. check le site du fabricant. et tes queues depth pour les devices, elles sont ok ? `nvme smart-log /dev/nvme0n1` peut donner des infos si tu as les outils

margaret-toussaint

Membre depuis le 24/09/2024

et quelle version de kernel linux ? des fois c'est juste des fixs de scheduler ou de gestion nvme dans des kernels plus récents qui résolvent le problème. `cat /proc/version`

maurice-cousin

Membre depuis le 04/07/2024

bordel c'était bien le scheduler ! j'étais en `cfq` sur un de mes disques et un autre en `deadline`. j'ai tout passé en `mq-deadline` avec `echo mq-deadline > /sys/block/nvme0n1/queue/scheduler`. en plus, un petit `kernel upgrade` a corrigé quelques trucs liés aux queues depth. maintenant le `iowait` est redescendu à 5-10% max et le load average est nickel. énorme merci à tous !

louis43

Membre depuis le 31/08/2024

ah le cfq sur nvme, un classique ! content que t'aies trouvé. ça change la vie

margaret-toussaint

Membre depuis le 24/09/2024

propre ! content que ça ait aidé. la gestion i/o sur linux c'est subtil

foucher-catherine

Membre depuis le 27/04/2020

nickel pour le retour

maurice-cousin

Membre depuis le 04/07/2024

carrément ça m'a sauvé ma semaine là thx !

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