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 sshd
30019   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:

nice_CompT Comando nice no Linux (altera prioridade) [Guia Básico]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 30018
30018 (process ID) com prioridade antiga 0, prioridade nova 2

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

$ renice +1 30018
renice: 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 30018
30018 (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