fbpx Certificação Linux: Comando nice no Linux (altera prioridade) [Guia Básico]

Blog

Comando nice no Linux (altera prioridade) [Guia Básico]

📅 01/01/2019 ⏱ 4 min ✍️ Uira Ribeiro
Linuxcomandos
Comando nice no Linux (altera prioridade) [Guia Básico]

O comando nice no Linux ajusta o tempo disponível de CPU de um processo para mais ou para menos prioridade. 

No inglês a palavra “nice” quer dizer “legal”. Se o ajuste de prioridade para um processo for um número positivo, quer dizer que ele está sendo mais legal com os outros programas diminuindo a sua prio­ridade. 

Se o ajuste for um número negativo, quer dizer que o programa está sendo menos legal, aumentando a sua prioridade de execução e sobrando menos tempo de CPU para os outros programas.

O ajuste de prioridade possível vai do –20 (mais prioridade / menos legal) até o 19 (mais legal, menos prioridade).

Se não for passado nenhum valor de ajuste, o comando nice ajustará a prioridade para +10, diminuindo o tempo de execução do processo.

Por padrão todos os programas iniciam com prioridade zero. Apenas o administrador root pode definir prioridades negativas (aumento de fatia de CPU).

Neste exemplo o comando updatedb tem menos prioridade de execução:

$ nice updatedb &

Neste exemplo o comando folha_pagamento será executado com mais prioridade.

$ nice –n –10 folha_pagamento 

Para verificar a prioridade dos processos em execução, o comando ps pode ser usado. A coluna NI mostra a prioridade:

$ ps -eo pid,ni,comm  PID   NI COMMAND    1    0 systemd    2    0 kthreadd    4  -20 kworker/0:0H    6  -20 mm_percpu_wq  ( ... )30018   0 sshd30019   0 bash

Alguns processos do sistema têm naturalmente prioridade máxima (-20).

O comando top também pode ser usado para ver a prioridade dos processos, na coluna NI:

Figura 54 - Top com coluna NI em destaque

Comando renice no Linux

O comando renice ajusta a prioridade de execução de processos em execução.

Por padrão, o comando renice recebe como parâmetro o PID de um determinado processo. O ajuste de prioridade é um número inteiro do –20 (maior prioridade) até o +19 (executar qualquer coisa antes deste processo).

As opções mais usuais são:

  • -p: Recebe um PID para alterar sua prioridade.
  • -u: Recebe um nome de usuário para alterar a prioridade de todos os processos deste usuário em execução.
  • -g: Recebe um nome de um grupo para alterar a prioridade de todos os processos pertencentes a este grupo.

Neste exemplo, o processo de número PID 987, PID 32 e todos os processos de que os usuários daemon e root são donos vão ter mais prio­ridade.

# renice -1 987 -u daemon root -p 32

Os usuários comuns somente podem alterar a prioridade dos processos de que eles são donos, e somente para diminuir a prioridade (do -20 até +19). Uma vez que o usuário comum diminui a prioridade, ele não pode normalmente voltar para a prioridade anterior.

Somente o usuário root pode alterar a prioridade de qualquer processo, aumentando ou diminuindo a prioridade.
Neste exemplo o programa com o PID 30018 passou de prioridade 0 para +2:

$ renice +2 3001830018 (process ID) com prioridade antiga 0, prioridade nova 2

Se um usuário comum tenta aumentar a prioridade, ele não consegue:

$ renice +1 30018renice: falha ao definir prioridade pra 30018 (process ID): Permission denied

Somente o root consegue aumentar a prioridade. Neste exemplo o comando sudo executa o renice como root:

$ sudo renice 0 3001830018 (process ID) com prioridade antiga 2, prioridade nova 0

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

 

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

WhatsApp