Depende da situação realmente. Todas as coisas são iguais, prefiro a abordagem do GRUB, simplesmente porque é simples e você obtém o agendador escolhido logo no início da inicialização.
O principal problema é que é uma configuração de todo o sistema e se você tiver mais de um disco e quiser agendadores diferentes em cada um deles, então não adianta. A abordagem udev
é melhor neste caso, oferece o controle mais refinado. Você poderia até mesmo definir agendadores diferentes para discos externos e eles seriam ativados quando você os conectasse.
O que eu menos prefiro é o script de inicialização. As opções aqui são para colocá-lo no script /etc/rc.local
, em cujo caso o agendador não mudará até (muito) atrasado no processo de inicialização ou para colocá-lo com os outros scripts sysvinit
. Este último é o mais complicado de todos, já que requer que você escreva LSB
tags etc para fazê-lo corretamente. Além disso, é mais difícil (pelo menos para mim) obter o disco correto via /sys
. Observe que o exemplo dado não funcionará se o disco para o qual você está tentando definir o agendador não for mais sda
por qualquer motivo. Com udev
você pode combinar o (s) dispositivo (s) de acordo com um intervalo de propriedades.