Membre depuis le 02/07/2020
salut. pour les VMs, surtout si l'OS hôte gère déjà son propre scheduler I/O (genre ESXi), on recommande souvent `noop` ou `deadline`. `cfq` est souvent le défaut mais il est pas idéal pour les environnements virtualisés car il fait trop de boulot déjà fait par l'hyperviseur.
Membre depuis le 15/10/2024
ouais `noop` c'est le plus simple il passe tout direct au kernel sans ordonnancement. `deadline` c'est un bon compromis, il assure que les requêtes ne soient pas trop retardées. pour voir ton scheduler actuel : `cat /sys/block/sdX/queue/scheduler` (remplace sdX par ton device).
Membre depuis le 26/12/2024
et si t'es sur un kernel récent (genre 4.x ou plus) et que t'as du NVMe ou du stockage bloc rapide, `mq-deadline` peut être encore mieux. c'est la version multi-queue de `deadline` qui tire parti des interfaces modernes. faut voir si ton kernel le supporte.
Membre depuis le 26/03/2019
merci ! je viens de checker, on est en `cfq`. je vais passer une VM en `noop` pour tester. pour changer à chaud : `echo noop > /sys/block/sdX/queue/scheduler` c'est ça ? faut le rendre persistant dans grub après.
Membre depuis le 02/07/2020
c'est ça pour le changer à chaud. pour la persistance, modifie la ligne `GRUB_CMDLINE_LINUX` dans `/etc/default/grub` et ajoute `elevator=noop` puis `update-grub` et reboot. si `noop` te donne pas les perfs que tu veux, tente `deadline` ou `mq-deadline`.
Membre depuis le 15/10/2024
attention aussi au niveau de VMware. t'es sur quel type de datastore ? et t'as checké le queue depth côté VM et côté hyperviseur ? parfois c'est une saturation là-bas avant même que le scheduler Linux ne voie le souci.
Membre depuis le 26/03/2019
on est sur du vSAN. j'ai passé une VM en `noop`, c'est mieux mais j'ai toujours des pics occasionnels. je vais regarder le queue depth et les métriques vSAN. on a pas mal de VMs sur le même datastore ptete de la contention.
Membre depuis le 26/12/2024
si t'es sur vSAN avec un kernel moderne, `mq-deadline` est souvent le vainqueur. `noop` est bien pour les hyperviseurs qui gèrent tout, mais `mq-deadline` peut mieux répartir la charge sur les queues I/O du kernel et du stockage sous-jacent.
Membre depuis le 26/03/2019
je viens de passer en `mq-deadline` sur une VM et là c'est le jour et la nuit. plus aucun pic de latence. les queries mongo sont stables. c'était bien le scheduler ! merci à tous pour les infos et les pistes, vous m'avez sauvé mon lundi.
Membre depuis le 02/07/2020
nickel content que ça ait résolu ton problème ! `mq-deadline` c'est vraiment le bon choix pour les infra modernes.
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
luce80
Membre depuis le 26/03/2019
hello la team ! on a des VMs Linux sur VMware qui hébergent du MongoDB et on a des drops de perf I/O assez violents de temps en temps. genre les queries qui prennent 10x plus de temps. j'ai checké le CPU et la RAM des VMs, rien d'anormal. ça sent le scheduler I/O qui fait des siennes. vous avez des best practices pour les VMs avec des bases de données ?