Membre depuis le 28/08/2023
salut ! le %iowait élevé avec un faible débit c'est souvent plein de petites requêtes I/O aléatoires qui saturent le queue depth ou un truc côté kernel. vérifie déjà le scheduler disque. sur un NVMe moderne tu devrais être en mq-deadline ou noop. si tu es encore en cfq ou bfq ça peut créer des latences de ouf.
cat /sys/block/nvme0n1/queue/scheduler
Membre depuis le 25/03/2019
ouais et vois aussi quel processus est responsable de ces i/o. iotop ou pidstat -d 5 peuvent t'aider à identifier le coupable. parfois c'est juste un truc qui fait plein de petits fsync() ou qui lit des tonnes de petits fichiers sans buffering. ça tue la performance.
Membre depuis le 02/05/2024
autre piste : la taille du block size de ton système de fichiers et des requêtes de l'appli. si ton appli écrit en blocs de 4KB et ton FS est en 4KB mais que le disque préfère du 512B ou du 8KB ça peut générer du overhead. mais bon sur NVMe c'est rare que ça soit si critique. t'as vérifié les trim opérations ?
Membre depuis le 14/04/2020
est-ce que ton applicatif fait des direct I/O ou utilise le cache du kernel ? si c'est du direct i/o ça bypass le cache et toutes les petites écritures sont directement flushées au disque. sur un nvme c'est souvent bien mais si l'appli en fait trop ça peut être pire. fais un test avec fio pour voir les perfs brutes du disque et compare avec ce que ton app fait
Membre depuis le 26/07/2021
ok un grand merci à tous pour les pistes ! c'était bien le scheduler, il était sur mq-deadline donc ça c'était bon. par contre, en utilisant iotop j'ai vu que c'était notre service de base de données (un truc custom) qui faisait des milliers de petites écritures de 4KB avec O_DIRECT à chaque fois. le combo o_direct + petites writes = iowait de fou même sur un nvme. j'ai pu modifier l'appli pour bufferiser un peu plus les écritures et le %iowait est retombé à 5% avec un débit bien plus sain. ouf !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
nicole-andre
Membre depuis le 26/07/2021
salut les linuxiens ! j'ai un souci bizarre sur un de nos serveurs de base de données. il a un nvme tout neuf qui est censé être ultra rapide, mais
iostatme montre un%iowaitqui tape dans les 50-70% alors que le débit disque est ridicule genre 10-20 MB/s max. en gros le disque attend tout le temps mais ne fait rien. le CPU est pas saturé. qu'est-ce qui peut causer ça sur un nvme ?