Comando nice do Linux: definir prioridade, mudar com renice e medir a fatia de CPU na disputa

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (somente celular)
Ambiente de testeFamília RHELAlmaLinux 9.8root · conta de usuário comumConferido em 17/10/2026

O comando nice do Linux define o valor nice de um programa (-20 a 19), que decide quanto de CPU ele cede a outros processos ao rodar. Medições num servidor AlmaLinux 9, com duas tarefas presas a um único núcleo de CPU e o valor nice trocado a cada rodada, mostraram que a CPU só foi dividida quando as tarefas disputavam por ela, e a tarefa com nice 19 usou só 1,4%.

Processos já em execução são alterados com o renice, e o ionice cuida de ceder a vez no disco. Para os três comandos, a saída mostrada é exatamente a que apareceu ao rodar como root e como usuário comum.

1️⃣ Comando nice do Linux: faixa de valores e a fatia de CPU na disputa

O valor nice é um número que define quanto um processo cede quando o tempo de CPU é dividido, e pode ir de -20 a 19. Os programas rodam normalmente em 0; -20 é atendido primeiro e 19 é o que mais cede.

É fácil achar que um número maior é atendido primeiro, mas o valor nice funciona ao contrário. O escalonador do Linux dá um peso a cada valor nice e divide o tempo de CPU nessa proporção: nice 0 é 1024, 10 é 110 e 19 é 15.

Ceder a vez só acontece quando as tarefas disputam a CPU. Se houver uma CPU ociosa, até uma tarefa com nice 19 roda sem esperar. É como o assento preferencial no ônibus: livre, qualquer um senta; só se cede o lugar quando o ônibus está cheio.

🧭 Valores nice com CPU sobrando vs. em disputa
Diagrama explicativo
🖥️ CPU
⚖️ Tarefa B
🖥️ Há CPU ociosa, então cada tarefa ganha um núcleo🖥️ Duas tarefas dividem um núcleo de CPU
Tarefa Anice 0 · peso 1024
100%50.0%90.3%98.6%
Tarefa Bnice 0 · peso 1024nice 10 · peso 110nice 19 · peso 15
100%50.0%9.7%1.4%
Com CPU sobrando não há a quem ceder, então a tarefa B usa a CPU por completo, seja qual for o valor nice.
Quando disputam o mesmo núcleo, duas tarefas nice 0 de peso igual dividem o tempo de CPU ao meio.
O nice 10 tem peso 110, cerca de um nono do nice 0 (1024), então o tempo de CPU é dividido em cerca de 90,3 : 9,7.
O nice 19 tem peso 15; na disputa, a tarefa B usa só cerca de 1,4% do tempo de CPU.

A tabela de pesos é o array [sched_prio_to_weight] no código-fonte do kernel Linux [kernel/sched/core.c], e foi feita para que cada passo a mais no valor nice corte o tempo de CPU em cerca de 10%.

2️⃣ Uso básico do nice: +10 quando o número é omitido, e valores fora da faixa

Coloque um comando depois do nice e ele roda com o valor nice alterado; digite só nice e ele mostra o valor nice do shell atual.

nice
0

Nos exemplos abaixo, o bash iniciado mostra o próprio valor nice com [ps -o ni=]. Sem -n, 10 é somado ao valor atual; com -n 5, soma-se 5.

nice bash -c 'ps -o ni= -p $$'
 10
nice -n 5 bash -c 'ps -o ni= -p $$'
  5

Valores fora da faixa são ajustados ao limite sem erro, então -n 50 roda em 19.

nice -n 50 bash -c 'ps -o ni= -p $$'
 19

Só o root consegue adiantar um processo com valor negativo. Um usuário comum recebe o aviso [cannot set niceness], e o comando roda mesmo assim em nice 0.

# como usuário comum
nice -n -5 bash -c 'ps -o ni= -p $$'
nice: cannot set niceness: Permission denied
  0
# como root
nice -n -5 bash -c 'ps -o ni= -p $$'
 -5

Os processos filhos iniciados por um comando rodado com nice também rodam com o mesmo valor nice.

nice -n 7 bash -c 'sleep 1 & ps -o ni= -p $!'
  7

Então, se você rodar um script com nice, todo comando dentro dele também cede a vez.

3️⃣ renice: mudar o valor nice de um processo em execução

O nice só define o valor ao iniciar, então para um processo já em execução usa-se o renice. Antes, confira o PID e o valor atual na coluna NI do top ou com ps.

ps -o pid,ni,cmd -p 201643
    PID  NI CMD
 201643   5 sleep 600
renice -n 10 -p 201643
201643 (process ID) old priority 5, new priority 10

Como mostra a saída, o renice -n não soma ao valor atual, e sim define o valor indicado: o resultado é 10, e não 5 + 10 = 15. Não é como apertar ▲ no controle do ar-condicionado para subir um nível, e sim como definir a temperatura desejada em 24 graus.

A documentação oficial do util-linux também descreve o -n como valor absoluto; somar fica a cargo da opção [--relative] nas versões mais novas. O util-linux 2.37.4, a versão testada, não tinha essa opção.

Um usuário comum só consegue aumentar o valor dos próprios processos e não pode baixá-lo de novo depois de aumentar.

# como usuário comum
renice -n 10 -p 201649
201649 (process ID) old priority 0, new priority 10
renice -n 5 -p 201649
renice: failed to set priority for 201649 (process ID): Permission denied

O root também consegue baixar; no mesmo teste, mudou 10 direto para 3.

🔲 Simulador de nice · renice

No simulador abaixo, conectado como usuário comum, você pode digitar nice e renice e ver o valor nice mudar.

Simulador do comando nicenice 8.32 · renice 2.37.4
[root@server work]#
Roda só no seu navegador e nunca mexe num processo real. O servidor virtual está conectado como usuário comum: rode algo com o valor nice alterado, ou mude o valor do backup.sh (PID 2481) com renice, e confira com ps -o pid,ni,cmd. Use as teclas ↑↓ para recuperar comandos anteriores.

4️⃣ Medindo a fatia de CPU na disputa: nice 0 vs 0·10·19

Aumentar o valor nice nem sempre deixa a tarefa mais lenta. A fatia dela só diminui quando disputa a mesma CPU com outra tarefa.

Duas tarefas foram presas a um único núcleo de CPU (taskset), e o script abaixo, que conta de um em um por 5 segundos, rodou nas duas ao mesmo tempo. Quanto maior a contagem, mais tempo de CPU a tarefa usou.

#!/bin/bash
end=$((SECONDS+5)); n=0
while [ $SECONDS -lt $end ]; do n=$((n+1)); done
echo $n

O script soma 1 ao n até passarem 5 segundos e então mostra o valor final.

📊5 segundos disputando um núcleo de CPUContagem em 5 segundos
Primeira tarefa nice 0Segunda tarefa
nice 0 vs nice 0
Duas tarefas com o mesmo peso.
0250K500K750K1M
nice 0497.59648.8%
nice 0522.04051.2%
nice 0 vs nice 10
Só a segunda tarefa roda em nice 10.
0250K500K750K1M
nice 0979.97190.1%
nice 10107.6719.9%
nice 0 vs nice 19
Só a segunda tarefa roda em nice 19.
0250K500K750K1M
nice 0909.89598.6%
nice 1913.0101.4%
Números de um servidor AlmaLinux 9 em 17 de outubro de 2026, com as duas tarefas presas a um núcleo de CPU e rodando juntas por 5 segundos cada.

Duas tarefas nice 0 dividiram ao meio, enquanto o nice 10 usou cerca de 10% e o nice 19 só 1,4%. Isso bate com as proporções calculadas pelos pesos do kernel (1024 : 110 dá 90,3 : 9,7, e 1024 : 15 dá 98,6 : 1,4).

Rodando sozinha no mesmo núcleo, a tarefa com nice 19 contou cerca de 650.000 a 1.140.000 vezes em 5 segundos. Sem ninguém a quem ceder, até o nice 19 usa a CPU por completo; a carga do servidor (load average) ficou entre 3 e 5 durante o teste.

5️⃣ ionice: ceder a vez no I/O de disco e verificar o escalonador

O nice só decide a fatia de CPU, então em tarefas que leem e gravam no disco por muito tempo, como backups, use o ionice para ceder a vez no disco também. Rodando com -c3 (idle), a tarefa só é atendida quando nenhum outro programa usa o disco.

ionice -c3 bash -c 'ionice -p $$'
idle
ionice -p $$
none: prio 0

Um processo sem classe definida aparece como [none]; pela documentação do kernel, ele é tratado como best-effort, com a prioridade calculada a partir do valor nice da CPU.

As classes do ionice só fazem efeito quando o escalonador de disco as suporta, e a documentação do kernel cita bfq e mq-deadline como escalonadores compatíveis. O que aparece entre colchetes é o escalonador em uso agora.

cat /sys/block/nvme0n1/queue/scheduler
[none] mq-deadline kyber bfq

O disco NVMe do servidor de teste usa [none], então, pela documentação oficial, o ionice pode não ter efeito ali; o efeito não foi medido à parte. Confira o nome do disco com lsblk.

6️⃣ Onde usar o nice: backups · cron · wp-cli

Ponha nice em tarefas demoradas mas não urgentes. A compressão de backup usa CPU e disco, então defina nice e ionice juntos.

nice -n 19 ionice -c3 tar czf backup.tgz /home/example

Se uma tarefa já em execução deixa o servidor lento, ache o PID no top e aumente o valor com renice; em tarefas do cron que rodam todo dia, ponha nice antes do comando.

0 3 * * * nice -n 10 /usr/local/bin/backup.sh

Num servidor WordPress, se você rodar tarefas grandes do wp-cli, como search-replace ou regeneração de imagens, com nice -n 10, o php-fpm, que atende os visitantes, fica com a CPU primeiro quando ela está ocupada.

nice -n 10 wp media regenerate --yes

Por outro lado, não aumente o valor nice do php-fpm nem do próprio servidor web. Se os processos que respondem aos visitantes cederem a vez, as páginas respondem mais devagar quando a CPU está ocupada.

🔢 FAQ & conteúdo recomendado

Para processos normais, o PR do top aparece como 20 mais o valor nice. Um processo iniciado com nice 5 mostrou PR 25 e NI 5, enquanto a coluna PRI do ps usa outro cálculo e mostrou o mesmo processo como 14.

O nice soma o valor indicado ao valor nice atual. [nice -n 5 nice -n 3 nice] mostra 8, diferente do renice -n, que define o valor indicado.

Coloque [Nice=] na seção [Service] do arquivo de unidade do serviço, e isso define o valor nice dos processos que o serviço roda. Pela documentação oficial do systemd.exec, vai de -20 a 19.

🧭 Processos e agendamento de tarefas: conteúdo recomendado 11 posts · 4 referências
🗂️ Processos e agendamento de tarefas
📄 Comando ps 📄 Comando top 📄 Comando nice do Linux 📄 Comando kill 📄 Comando killall 📄 Segundo & primeiro plano 📄 Comando uptime
📄 Configurar o crontab
📋 WP CLI: instalação e configuração 📄 WP-Cron(wp-cron.php) 📄 Encontrar padrões sincronizados: WP-CLI
📡 GNU Coreutils nice invocation 📡 renice(1) Linux manual page 📡 Block io priorities (documentação do kernel) 📡 sched_prio_to_weight (código do kernel)

ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Demonstre sua humanidade: 2   +   6   =