O Linux Altera Automaticamente um Processo Niceness?

7

Eu sei que você pode alterar um niceness de processo com setpriority ou nice ou renice .

No entanto, o Linux ajusta / altera automaticamente um niceness de processo sem entrada do usuário?

Eu tenho um processo para o qual eu uso setpriority em C, assim:

setpriority(PRIO_PROCESS, 0, -1)

Quando o processo está em execução, posso ver que seu valor de niceness é agora -1 executando htop .

Ao investigar uma falha em uma máquina remota, a saída do htop foi fornecida para mim. Notei que o valor de niceness para este processo foi alterado em uma instância para 0 e em outra instância para 6. Gostaria de saber se isso foi alterado pelo kernel ou se a única maneira de alterar esse valor é ter um usuário ou script deliberadamente fazer a mudança.

    
por Luis 10.01.2017 / 04:54

1 resposta

5

De acordo com meu conhecimento, o kernel do Linux não muda a gentileza de um processo, e não vejo por que isso aconteceria, já que não é necessário diminuir a prioridade de um processo. A gentileza é uma informação dada ao kernel, dizendo quão bom esse processo está disposto a ser. O agendador do kernel é livre para levar essa informação em consideração da maneira que deseja, a fim de mudar a prioridade de um processo, não precisa mudar seu valor.

Por outro lado, em land de usuário, existem daemons como AND cuja tarefa é renunciar a processos de acordo com regras estabelecidas por o admin. Você tem esse daemon instalado em seu servidor?

No entanto, o daemon AND não renifica os processos de propriedade de root e, como você definiu uma prioridade de -1 com setpriority() , presumo que esse seja o caso aqui. Portanto, a única razão pela qual vejo essa mudança de gentileza é a interação do usuário.

Dito isto, como você está usando htop , é possível que o processo tenha sido renegado inadvertidamente pressionando a tecla ] ou a tecla F8 .

    
por 13.01.2017 / 19:31