Gostaria de alterar a política de agendamento de um processo via chrt
, porém, como você pode ver abaixo, isso não tem efeito no processo do systemd. Este é um exemplo e eu tentei outros processos também. Permanece SCHED_OTHER.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1862 mahmood 20 0 24980 11908 9768 S 5,9 0,1 0:00.09 systemd
$ sudo chrt -p 1862
pid 1862's current scheduling policy: SCHED_OTHER
pid 1862's current scheduling priority: 0
$ sudo chrt -f -p 1862
pid 1862's current scheduling policy: SCHED_OTHER
pid 1862's current scheduling priority: 0
$ sudo chrt -p 1862
pid 1862's current scheduling policy: SCHED_OTHER
pid 1862's current scheduling priority: 0
Alguma idéia sobre isso?
Você não está usando chrt de acordo com o que
man chrt
diz:Ao alterar a política de agendamento, o parâmetro de prioridade não é opcional. Use
chrt --max
para verificar os intervalos de valores aceitáveis.Use
chrt -o -p 0 21549
para restaurar a política SCHED_OTHER original + prioridade.Más notícias: isso pode ser um
chrt
bug.mostra apenas uma syscall para
sched_getattr
, mas não parasched_setattr
, como seria necessário:Portanto, a configuração nem é tentada.