Como priorizar processos Linux com Nice e Renice

Dentro das várias tarefas de gestão dos sistemas operativos Linux, o ideal é conhecer detalhadamente como funcionam os processos dentro do sistema, visto que isso é essencial para a completar e saber como, internamente, cada processo cumpre a função para a qual foi desenvolvido.

Hoje a Solvetic irá analisar em detalhes como priorizar os processos de nossas distros Linux usando nice e renice.

Quais são as prioridades de processo no LinuxÉ importante antes de saber o quão bom e renice funcionam entender um pouco sobre porque definir uma determinada prioridade de um processo Linux, a prioridade de um processo, é usado para determinar a quantidade de tempo que o processo selecionado será capaz de usar o processador em um intervalo de tempo específico.

Em ambientes Linux, os processadores são compartilhados por múltiplos processos (os processos se alternam na utilização do (s) processador (es) disponível (is)) o que permite ao usuário perceber que todas as aplicações ou tarefas são executadas ao mesmo tempo, portanto definindo uma prioridade , indicamos ao sistema quais processos podem fazer mais uso do processador e quais processos ficam em segundo plano.

Esta prioridade pode fazer com que alguns processos não sejam executados em momento algum, uma vez que são movidos para o fim da fila de processos por outros processos com uma prioridade de utilização superior.

Como funciona o Kernel Scheduler no LinuxOutro ponto a ter em mente ao gerenciar sistemas Linux é conhecer o kernel, que é responsável pela inicialização. Possui um programador ou escalonador em seu kernel, que é uma unidade do kernel que determina o processo mais adequado de todos os processos executáveis ​​disponíveis, que deve ser executado na primeira instância. Em seguida, ele aloca o tempo do processador entre os processos executáveis ​​no sistema.

Um processo executável é aquele que está apenas esperando o tempo da CPU ser executado. O programador forma o kernel da multitarefa no Linux, fazendo uso de um algoritmo de escalonamento baseado em prioridade para selecionar processos executáveis ​​no sistema. Em seguida, classifica os processos com base nos mais fundamentais, bem como os requisitos de tempo de CPU de cada um deles.

No Linux, há um total de 140 prioridades e duas faixas de prioridade diferentes implementadas no Linux:

  • O primeiro é o valor agradável que varia de -20 (valor de prioridade mais alta) a 19 (valor de prioridade mais baixa) e o valor padrão é 0.
  • A segunda é a prioridade em tempo real, que varia de 1 a 99 por padrão, então 100 a 139 são destinados ao espaço do usuário.

1. Verificando os valores dos processos no Linux


No Linux podemos verificar os valores de um processo usando utilitários como ps, top ou htop.
Se usarmos o parâmetro ps, podemos executar o seguinte:
 ps -eo pid, ppid, ni, comm
Lá a coluna não revela o valor de cada processo:

PROLONGAR

Alternativamente, podemos fazer uso dos parâmetros top ou htop onde podemos ver resultados muito mais completos e automaticamente veremos a coluna com os mesmos valores de cada processo exibido:

topo

PROLONGAR

htop

PROLONGAR

ObservaçãoCaso não tenha o htop podemos instalá-lo executando a linha sudo apt install htop

2. Diferença entre PR ou PRI e NI e como calcular seus valores


Quando executamos os parâmetros top e htop, podemos ver as colunas PR, PRI ou NI, eles significam:

NENHUMÉ um valor amigável, ou seja, é um conceito de espaço do usuário

PR / PRIÉ a real prioridade do processo, esta informação é fornecida pelo kernel Linux

Esses valores são baseados no seguinte em mente.

 Número total de prioridades = 140 Intervalo de prioridade em tempo real (PR ou PRI): 0 a 99 Intervalo de prioridade de espaço do usuário: 100 a 139 Intervalo de valores NI (valor agradável) -20 a 19: PR = 20 + NI PR = 20 + ( -20 a + 19) PR = 20 + -20 a 20 + 19 PR = 0 a 39 que é igual a 100 a 139
Se nos resultados exibidos virmos o valor rt, isso indica que o processo é executado com prioridade de escalonamento em tempo real.

3. Como executar um comando com um bom valor no Linux


Nice se encarrega de atribuir uma prioridade específica a um programa no momento da sua execução e por herança às tarefas e processos que este programa pode desencadear no sistema. Nice se aplica quando temos um programa ou tarefa que requer muito uso de CPU, mas também que esse processo pode demorar para ser concluído, aí será possível configurar uma prioridade alta ou favorável usando o comando nice.

A sintaxe que podemos usar é a seguinte:

 nice -n nice-value [argumentos de comando] nice - nice-value [comandos] nice --ajustamento = nice-value [comandos de argumentos]
Considere o seguinte:
  • Se nenhum valor for fornecido, nice irá definir uma prioridade de 10 por padrão
  • Um comando ou programa executado sem valores padrão é definido com uma prioridade zero
  • Apenas o usuário root pode executar um comando ou programa com maior ou maior prioridade
  • Os usuários normais só podem executar um comando ou programa com baixa prioridade
Para definir uma prioridade, em vez de iniciar um programa ou comando com a prioridade padrão, será possível iniciá-lo com uma prioridade específica usando o seguinte comando:
 sudo nice -n -5 xclock &
Ou podemos executar o seguinte:
 sudo nice --adjustment = 5 xclock &

PROLONGAR

Podemos ver que um novo ID é gerado.

4. Alterar a prioridade de agendamento de um processo no Linux


Ao utilizar ambientes Linux, permite a programação dinâmica baseada em prioridades, portanto, se um programa já estiver em execução, será possível alterar sua prioridade utilizando o comando renice da seguinte forma:
 renice -n -12 -p (PID) renice -n -2 -u (Aplicativo)
Ao executar este comando poderemos ver a prioridade antiga e a nova prioridade.

PROLONGAR

5. Como definir um bom padrão para os processos de um usuário específico


Você pode definir o valor padrão para um usuário ou grupo específico no arquivo /etc/security/limits.conf. Sua principal função é definir limites de recursos para usuários conectados por meio do PAM.

A sintaxe para definir um limite para um usuário é a seguinte:

 
Alternativamente, será possível criar um arquivo em /etc/security/limits.d/ que se encarrega de sobrescrever a configuração no arquivo principal e esses arquivos são lidos em ordem alfabética.

Se quisermos obter a ajuda de nice ou renice, podemos executar o seguinte:

 homem bom homem renice

PROLONGAR

Assim temos em mãos a opção de estabelecer prioridades de acordo com as necessidades dos processos, otimizando muito mais o uso da CPU no Linux e melhorando significativamente as tarefas administrativas.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave