Je ne vais pas détailler ici ce qu'est un scheduler (ou en francais ordonnanceur :p) : Wikipedia est la pour ça.
Par défaut depuis quelques années le scheduler utilisé était cfq.
Ses réglages par défaut ne sont pas forcément géniaux mais comme nous n'avons pas envie de trop nous embêter a les changer nous allons simplement changer de scheduler pour un autre.
Les scheduler classiques sont optimisés pour des disques a plateaux, si vous utilisez des disques non mécaniques mais à base de mémoire comme des SSD, carte Compact Flash, SD … vous voudrez utiliser le scheduler “noop” qui comme son nom l'indique ne cherche pas à optimiser pour s'adapter à une mécanique de disque.
Cela se passe en regardant le contenu des fichiers /sys/block/sd*/queue/scheduler (ou /sys/block/hd*/queue/scheduler pour les disques IDE). En utilisant la commande “cat /sys/block/sd*/queue/scheduler” vous aurez la liste des scheduler supportés par votre noyau et celui actuellement utilisé apparaitra entre crochets, comme dans l'exemple ci dessous où on peut noter l'utilisation de cfq :
$ cat /sys/block/sd*/queue/scheduler noop deadline [cfq] noop deadline [cfq] noop deadline [cfq] noop deadline [cfq]
On peut changer ce scheduler :
Il suffit d'ecrire dans /sys/block/sd*/queue/scheduler celui que vous souhaitez utiliser : Si l'on souhaite changer sur les disques /dev/sda à /dev/sdd pour utiliser deadline :
# for i in a b c d; do echo deadline > /sys/block/sd$i/queue/scheduler ; done
On peut ensuite vérifier l'utilisation grâce a notre “cat /sys/block/sd*/queue/scheduler” :
$ cat /sys/block/sd*/queue/scheduler noop [deadline] cfq noop [deadline] cfq noop [deadline] cfq noop [deadline] cfq
Il faut alors passer le paramètre elevator à votre noyau.
Il faut donc passer le nom du scheduler choisi au noyau. Dans notre exemple ci dessus nous avons donc le choix entre :
Si vous utilisez grub2 sur une distribution debian/ubuntu, vous devez éditer le fichier /etc/default/grub (en root):
GRUB_CMDLINE_LINUX_DEFAULT="quiet elevator=deadline"
# update-grub
On peut vérifier la présence de cette nouvelle option dans la configuration générée de grub en utlisant par exemple la commande “$ grep elevator /boot/grub/grub.cfg”
Il ne reste ensuite plus qu'a redémarrer pour voir que ce changement va être permanent.