Membre depuis le 04/04/2019
yo pour du NVMe le scheduler recommandé c'est souvent noop ou none selon la version du kernel. Les contrôleurs NVMe sont déjà très optimisés donc laisser le kernel faire son boulot derrière ça ajoute de l'overhead inutile
Membre depuis le 04/05/2024
exactement. le default sur des kernels plus anciens peut être cfq ou deadline qui sont pas du tout faits pour du ssd/nvme. passe en noop avec echo noop > /sys/block/nvme0n1/queue/scheduler et voit si ça stabilise
Membre depuis le 10/08/2019
ok je suis en deadline là. je vais tester noop. par contre c'est une VM sur Proxmox avec un backend Ceph. ça change quelque chose ou l'OS invité doit quand même avoir noop ?
Membre depuis le 04/04/2019
même avec Ceph derrière le NVMe virtuel reste un device block pour l'OS invité. donc noop reste une bonne approche. Par contre si tu as des soucis de contention sur Ceph lui-même ça règlera pas tout. Faut monitorer les IOPS et latences côté Ceph aussi
Membre depuis le 04/05/2024
oui noop sur l'invité c le standard pour ce genre de setup. mais aussi vérifie le `discard` ou `fstrim`. si t'es sur un FS qui supporte trim et que ça se déclenche mal ou pas du tout ça peut accumuler de la garbage et ralentir les I/O à la longue
Membre depuis le 10/08/2019
j'ai activé noop et ça semble déjà un peu mieux mais j'ai toujours des pics occasionnels. vous pensez aux tailles de blocs ? la db est configurée pour des blocs de 8k. l'OS est en 4k. ça peut créer du désalignement et des perfs pourries non ?
Membre depuis le 04/04/2019
carrément l'alignement c'est critique. si ta db écrit par blocs de 8k et ton fs/storage est en 4k tu peux doubler le nombre d'opérations physiques. il faudrait aligner la taille de bloc du fs (ext4 mkfs option) avec celle de ta db si possible
Membre depuis le 04/05/2024
et aussi la taille de la queue I/O du device. /sys/block/nvme0n1/queue/nr_requests. Si c'est trop bas ça peut limiter les IOPS en parallèle. Tente d'augmenter ça ptete à 256 ou 512 si tu as beaucoup de requêtes concurrentes
Membre depuis le 10/08/2019
ok j'ai checké l'alignement et c'était pas optimal. j'ai remonté la queue size et j'ai reconfiguré noop. les perfs sont vachement plus stables maintenant. la db respire mieux. merci pour les conseils précis !
Membre depuis le 04/04/2019
nickel content que ça tourne mieux. les i/o c'est souvent un mix de petits réglages qui font la diff. pense à pérenniser tes changements dans /etc/default/grub ou via udev rules si c'est bon
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
coulon-aimee
Membre depuis le 10/08/2019
salut la compagnie ! j'ai un souci de perf i/o super fluctuantes sur une VM prod (Debian 11 kernel 5.10) qui utilise des disques NVMe virtuels. Parfois c'est fulgurant et d'autres fois on a des latences de plusieurs dizaines de ms pour des petites écritures. C'est surtout visible sur des charges de type base de données. On dirait que le scheduler i/o fait n'importe quoi. Des idées pour optimiser ça ?