Como definir prioridade do processo Linux usando comandos Nice e Renice

Como definir prioridade do processo Linux usando comandos Nice e Renice

Neste artigo, explicaremos brevemente o Agendador do kernel (também conhecido como Agendador de processos), e prioridade do processo, que são tópicos além do escopo deste guia. Em seguida, mergulharemos em um pouco de gerenciamento de processos Linux: consulte como executar um programa ou comando com prioridade modificada e também alterar a prioridade de executar processos Linux.

Leia também: Como monitorar os processos Linux e definir limites de processo por um usuário

Compreendendo o agendador do kernel Linux

Um agendador de kernel é uma unidade do kernel que determina o processo mais adequado de todos os processos executáveis ​​para executar a próxima; aloca o tempo do processador entre os processos executáveis ​​em um sistema. Um processo executável é aquele que está esperando apenas pelo tempo da CPU, está pronto para ser executado.

O agendador forma o núcleo de multitarefa no Linux, usando um algoritmo de agendamento baseado em prioridade para escolher entre os processos executáveis ​​no sistema. Ele classifica os processos com base nos mais merecedores e na necessidade de tempo da CPU.

Entendendo o processo de prioridade e bom valor

O kernel armazena muitas informações sobre processos, incluindo prioridade do processo, que é simplesmente a prioridade de agendamento anexada a um processo. Os processos com uma prioridade mais alta serão executados antes daqueles com uma prioridade mais baixa, enquanto os processos com a mesma prioridade são agendados após o próximo, repetidamente.

Há um total de 140 prioridades e duas faixas prioritárias distintas implementadas no Linux. O primeiro é um bom valor (gentileza) que varia de -20 (maior valor de prioridade) para 19 (menor valor de prioridade) e o padrão é 0, É isso que descobriremos neste guia. O outro é a prioridade em tempo real, que varia de 1 para 99 por padrão, então 100 para 139 são destinados ao espaço do usuário.

Uma característica importante do Linux é a programação dinâmica baseada em prioridade, que permite que o bom valor dos processos seja alterado (aumentado ou diminuído), dependendo de suas necessidades, como veremos mais adiante.

Como verificar o bom valor dos processos Linux

Para ver os bons valores dos processos, podemos usar utilitários como PS, Top ou HTOP.

Para visualizar processos de bom valor com o comando ps em formato definido pelo usuário (aqui o Ni A coluna mostra a gentileza dos processos).

$ ps -eo pid, ppid, ni, comm 
Ver Linux Processos Valores agradáveis

Como alternativa, você pode usar utilitários de topo ou htop para visualizar processos Linux, valores bons, como mostrado.

$ top $ htop 
Verifique os valores do Processo Linux usando o comando superior Verifique os valores do Processo Linux usando o comando HTOP

Diferença entre PR ou PRI e NI

De principal e htop Saídas acima, você notará que há uma coluna chamada Pr e PRI receptivamente que mostra a prioridade de um processo.

Isso, portanto, significa que:

  • Ni - é o bom valor, que é um conceito de espaço do usuário, enquanto
  • Pr ou PRI - é a prioridade real do processo, como visto pelo kernel Linux.
Como calcular valores de relações públicas ou PRI
Número total de prioridades = 140 Faixa de prioridade em tempo real (PR ou PRI): 0 a 99 Faixa de prioridade do espaço do usuário: 100 a 139 

Faixa de valor agradável (NI): -20 a 19

Pr = 20 + ni pr = 20 + (-20 a + 19) pr = 20 + -20 a 20 + 19 pr = 0 a 39, que é o mesmo que 100 a 139. 

Mas se você vir um rt Em vez de um número, como mostrado na captura de tela abaixo, basicamente significa que o processo está sendo executado sob prioridade de agendamento em tempo real.

Processo RT Linux

Como executar um comando com um determinado bom valor no Linux

Aqui, veremos como priorizar o uso da CPU de um programa ou comando. Se você tem um programa ou tarefa muito intensiva em CPU, mas também entende que pode levar muito tempo para concluir, você pode defini-lo uma prioridade alta ou favorável usando o bom comando.

A sintaxe é a seguinte:

$ nice -n gentive-value [comando args] ou $ nice -nicession-value [comando args] #é confuso para valores negativos ou $ nice-adjustamento = gentive-value [comando args] 

Importante:

  • Se nenhum valor for fornecido, bons conjuntos uma prioridade de 10 por padrão.
  • Um comando ou programa é executado sem bons padrões para uma prioridade de zero.
  • Somente root pode executar um comando ou programa com aumento ou alta prioridade.
  • Usuários normais podem executar apenas um comando ou programa com baixa prioridade.

Por exemplo, em vez de iniciar um programa ou comando com a prioridade padrão, você pode iniciá -lo com uma prioridade específica usando o seguinte bom comando.

$ sudo nice -n 5 tar -czf backup.alcatrão.gz ./Documentos/* ou $ sudo nice -advertment = 5 tar -czf backup.alcatrão.gz ./Documentos/* 

Você também pode usar o terceiro método, o que é um pouco confuso, especialmente para valores de gentileza negativos.

$ sudo nice -5 tar -czf backup.alcatrão.gz ./Documentos/* 

Altere a prioridade de agendamento de um processo no Linux

Como mencionamos antes, o Linux permite a programação dinâmica baseada em prioridade. Portanto, se um programa já estiver em execução, você poderá mudar sua prioridade com o Comando Renice Nesta forma:

$ renice -n -12 -p 1055 $ renice -n -2 -u apache 
Alterar prioridade do processo

Da amostra principal saída abaixo, a gentileza do Teamspe+ com pid 1055 é agora -12 e para todos os processos pertencentes ao usuário Apache é -2.

Ainda usando esta saída, você pode ver a fórmula PR = 20 + Ni Stands,

PR para TS3Server = 20 + -12 = 8 Pr para processos Apache = 20 + -2 = 18 
Assistir processos bons valores

Quaisquer alterações que você faça com Comando Renice Para os processos de um usuário, os valores agradáveis ​​são aplicáveis ​​apenas até a próxima reinicialização. Para definir valores padrão permanentes, leia a próxima seção.

Como definir o valor bom padrão dos processos de um usuário específico

Você pode definir o valor bom padrão de um determinado usuário ou grupo no /etc/segurança/limites.conf arquivo. Sua função principal é definir os limites de recursos para os usuários conectados via PAM.

A sintaxe para definir um limite para um usuário é a seguinte (e os possíveis valores das várias colunas são explicados no arquivo):

#    

Agora use a sintaxe abaixo onde hard - significa aplicar links rígidos e meios suaves - aplicando os limites suaves.

  prioridade  

Como alternativa, crie um arquivo em /etc/segurança/limites.d/ que substitui as configurações no arquivo principal acima e esses arquivos são lidos em ordem alfabética.

Comece criando o arquivo /etc/segurança/limites.D/Tecmint-prioridade.conf para usuário Tecmint:

# vi/etc/segurança/limites.D/Tecmint-prioridade.conf 

Em seguida, adicione esta configuração nele:

Tecmint Hard Priority 10 

Salve e feche o arquivo. De agora em diante, qualquer processo de propriedade de Tecmint terá um bom valor de 10 e PR de 30.

Para mais informações, leia as páginas do homem de legal e Renice:

$ homem legal $ homem Renice 

Você também pode ler estes seguintes artigos sobre o gerenciamento de processos Linux.

  1. Como encontrar e matar processos de corrida no Linux
  2. Um guia para matar, Pkill e Killall Comandos para encerrar um processo no Linux
  3. Como monitorar o uso do sistema, interrupções e problemas de problemas de linux
  4. CPUTOOL - Limite e controle da utilização da CPU de qualquer processo no Linux

Neste artigo, explicamos brevemente o agendador de kernel, a prioridade do processo, analisamos como executar um programa ou comando com prioridade modificada e também alteramos a prioridade dos processos ativos do Linux. Você pode compartilhar qualquer pensamento sobre este tópico através do formulário de feedback abaixo.