Como definir prioridade do processo Linux usando comandos Nice e Renice
- 2407
- 548
- Arnold Murray
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, commVer 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 $ htopVerifique 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, enquantoPr
ouPRI
- é 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.
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 apacheAlterar 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 = 18Assistir 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.
- Como encontrar e matar processos de corrida no Linux
- Um guia para matar, Pkill e Killall Comandos para encerrar um processo no Linux
- Como monitorar o uso do sistema, interrupções e problemas de problemas de linux
- 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.