não é possível definir o elevador CFQ no Kubuntu 19.04

não é possível definir o elevador CFQ no Kubuntu 19.04

Você não pode escolher o agendador CFQ no Kubuntu 19.04, pois ele foi removido do kernel 5.0. No meu caso, preciso do CFQ porque ele oferece o melhor desempenho com meu disco rígido giratório ao executar uma máquina virtual com Windows 10 como convidado. SO, os outros agendadores tornam o sistema inutilizável. O Kubuntu 19.04 na instalação por padrão oferece apenas 2 elevadores mq-deadline e nenhum que no meu caso ofereça um desempenho muito pior que o CFQ.

sudo cat/sys/block/sda/queue/scheduler mq-deadline none

Só tenho que tentar com outros 2 agendadores que não aparecem na instalação por padrão, esses agendadores são BFQ e Kyber.

A seguir descreverei como habilitar os módulos BFQ e Kyber

1) Primeiro verifique se os módulos existem no sistema com os seguintes comandos:

sudo modprobe bfq sudo modprobe kyber-iosched

se não houve erro você pode verificar se os módulos estão carregados com o comando

sudo cat/sys/block/sda/queue/scheduler

que deve retornar

mq-deadline [bfq] kyber none

2) faça esses módulos carregarem com a inicialização do sistema:

sudo -i echo kyber-iosched > /etc/modules-load.d/kyber-oisched.conf echo bfq > /etc/modules-load.d/bfq.conf

3) O próximo passo é informar ao sistema qual agendador usar, então um arquivo é criado caso ele não exista:

/etc/udev/rules.d/60-scheduler.rules

com as seguintes linhas

# set cfq scheduler 
ACTION=="add|change",KERNEL=="sd[a-z]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"
ACTION=="add|change",KERNEL=="sr[0-9]",ATTR{queue/rotational}=="1",ATTR{queue/scheduler}="bfq"

se em vez de BFQ você quiser experimentar o kyber, substitua a última palavra da linha onde diz "bfq" por "kyber"

4) fazer o sistema reconhecer as mudanças

sudo udevadm control --reload; gatilho sudo udevadm

e as alterações são verificadas com

sudo cat/sys/block/sda/queue/scheduler

mq-deadline kyber [bfq] none

Finalizado.

Fontes:

https://community.chakralinux.org/t/how-to-enable-the-bfq-io-scheduler-on-kernel-4-12/6418

https://unix.stackexchange.com/questions/375600/how-to-enable-and-use-the-bfq-scheduler#376136

Responder1

Dependendo da versão do seu kernel, o CFQ pode ter desaparecido. Ele foi removido a partir do Kernel 5.0. Isto é ogrupo de commits relacionados.

Responder2

Ubuntu 19.04 usa o kernel 5.0, então CFQ e Deadline não estão mais disponíveis.

Para a maioria das cargas de trabalho, mesmo em HDD, usar o agendador mq-deadline é tão eficiente quanto usar qualquer um dos agendadores antigos. Somente para cargas de trabalho com leituras/gravações sequenciais de disco, sem qualquer outra interferência, os agendadores antigos são mais rápidos.

Responder3

Em um laptop legado, com um disco rígido rotacional antigo e simples, o BFQ é essencial para ter um sistema responsivo enquanto alguma outra tarefa acessa o disco em segundo plano. Anteriormente, o kernel genérico do Ubuntu usava cfq:

    $ zgrep IOSCHED /boot/config-*-generic
    ...
    /boot/config-4.13.0-36-generic:CONFIG_DEFAULT_IOSCHED="cfq"

após a atualização, o kernel padrão do Ubuntu teve o CFQ removido (veja acima), e encontrei este padrão:

    $ cat /sys/block/sda/queue/scheduler
    [mq-deadline] none

inaceitável devido ao atraso extremo na presença de atividade de disco em segundo plano. Presumo que isso seja um problema muito menor em hardware moderno com armazenamento em massa SDD/NVMe.

Como diz o OP, mudar para bfq resolve o problema de atraso.

Marco Gamberoni

informação relacionada