Tutoriel Linux

Nice no Linux: acalmar um processo que consome muitos recursos sem interrompê-lo abruptamente.

Débutant4 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Quando um processo do Linux começa a consumir muita CPU, a primeira reação nem sempre deve ser matarSe o serviço estiver funcionando corretamente, desligá-lo abruptamente pode causar a falha de uma tarefa, a corrupção de um backup ou a interrupção de um processo em andamento. Nesse caso, legal E Renice Permite diminuir sua prioridade sem interrompê-lo.

Observação: esses comandos não reduzem a carga magicamente. Eles alteram a prioridade da CPU vista pelo agendador do Linux. Isso é útil para dar ao servidor um pouco de folga, mas se um aplicativo entrar em loop ou bloquear um banco de dados, você ainda precisará ler os logs e entender a causa.

Tux ajusta a prioridade de um processo Linux que consome muitos recursos em um servidor.
Os comandos `nice` e `renice` permitem diminuir a prioridade de um processo sem interrompê-lo abruptamente.

Entenda o valor ideal antes de modificar um processo.

No Linux o valor legal geralmente vai de menos vinte tem dezenoveQuanto menor o valor, maior a prioridade do processo. Quanto maior for o valor, mais espaço sobra para outras tarefas.

  • menos vinte : prioridade muito alta, a ser reservada para casos controlados;
  • zero : prioridade padrão de muitos processos;
  • dez Ou quinze
  • dezenove : prioridade muito baixa.

Um usuário comum geralmente pode diminuir a prioridade de seus próprios processos. Aumentar a prioridade de um processo requer privilégios de root. Isso é intencional: definir uma prioridade muito alta em um servidor compartilhado pode interromper o funcionamento do restante do sistema.

Executar um comando com prioridade mais baixa

A ordem legal É utilizado quando você inicia um programa. Exemplo simples:

comando nice -n 10

Para compressão elevada, isso pode resultar em:

nice -n 10 tar -czf backup.tar.gz /srv/data

A tarefa está sempre em execução, mas evita sobrecarregar outros processos de forma excessiva. Eu a utilizo principalmente para processamento em segundo plano: compressão, conversão, digitalização, scripts personalizados ou operações demoradas que não precisam ser concluídas em menos de um minuto.

Veja a prioridade atual com ps, top ou htop.

Antes de alterar qualquer coisa, identifique o processo envolvido. Um resultado. p.s. Direcionado costuma ser suficiente:

ps -eo pid,ni,pri,pcpu,pmem,comm --sort=-pcpu | head

A coluna NENHUM Exibe o valor “legal”. A coluna PRI Fornece uma prioridade calculada pelo kernel. Para uma leitura rápida em tempo real, você também pode abrir:

principal

Ou use htop para ler a carga do servidorNo htop, a ordenação por CPU e a subsequente verificação do PID já impedem o usuário de tomar muitas decisões equivocadas.

Modificar um processo já iniciado com renice

Se o processo já estiver em execução, legal já não é suficiente. Devemos usar RenicePrimeiro, recupere o PID e, em seguida, diminua a prioridade:

renice +10 -p 1234

Aqui, mil duzentos e trinta e quatro deve ser substituído pelo PID real. Em um processo que pertence a outro usuário, ou se você quiser aumentar sua prioridade, siga as instruções abaixo. sudo :

sudo renice -5 -p 1234

Eu desaconselho a definição de valores negativos sem um motivo específico. Em um servidor de produção, essa raramente é a melhor primeira resposta. Diminuir a prioridade de um processo que consome muitos recursos costuma ser mais saudável do que conceder acesso indevido à CPU a um serviço mal diagnosticado.

Verifique se a alteração foi aplicada.

Depois de um Renice, releia o valor NENHUM :

ps -o pid,ni,pri,pcpu,pmem,comm -p 1234

Você também pode analisar a carga total:

tempo de atividade

Se o servidor continuar lento, não tire conclusões precipitadas de que… Renice Não está funcionando. O gargalo pode ser o disco, a memória, um bloqueio de aplicativo ou um serviço que está reiniciando em loop. Nesse caso, verifique os logs com jornalctl e registros de aplicativos com cauda.

Quando ser gentil não basta

legal E Renice Essas medidas afetam a prioridade da CPU. Elas não limitam a memória, não corrigem consultas SQL instáveis ​​nem substituem um limite de recursos real. Se você precisa limitar um serviço adequadamente, considere o systemd, os cgroups ou a configuração do aplicativo.

Se o processo estiver claramente bloqueado ou for perigoso, pode ser necessário interrompê-lo. Nesse caso, use o método adequado: identifique o serviço, leia os registros, tente um desligamento normal e somente então use [o método apropriado]. matar sem interromper o processo ruim.

As páginas de manual do legal, Renice E p.s. Eles detalham as opções disponíveis. Na prática, lembre-se acima de tudo desta regra: diminua a prioridade de uma tarefa de longa duração se ela estiver sobrecarregando o servidor, mas não a utilize para mascarar um problema real de carga.

sudo apt update && sudo apt upgrade