Cada processo no
sistema é executado com prioridades definidas, também conhecidas
como “valor nice”, que pode variar de -20 (prioridade
mais alta) a 19 (prioridade mais baixa). Se não definida, cada
processo será executado com a prioridade 0 (a prioridade para
agendamento “base”). Processos com uma prioridade
maior (valor nice menor, até -20) serão agendados para executar com
mais frequência do que os que possuem prioridade menor (até 19),
garantindo desta forma mais ciclos do processador para
eles. Usuários normais somente podem abaixar a prioridade dos
processos que eles possuem dentro dos valores de 0 a 19. O
superusuário (root
) pode configurar a prioridade de
qualquer processo para qualquer valor.
Se um ou mais processos usam muito recurso do sistema, você pode alterar as suas prioridades em vez de matá-los. Para fazer isto, use o comando renice. A sua sintaxe é:
renice prioridade [[-p] pid ...] [[-g] pgrp ...] [[-u] usuário ...]
onde prioridade
é o valor da prioridade, pid
(use a opção
-p
para processos múltiplos) é o ID do processo,
pgrp
(use a opção -g
se há
mais de um) é o ID do grupo do processo, e usuário
(-u
para mais de um) é o dono do processo.
Vamos supor que você tenha um processo sendo executado com o PID 785, que está realizando um cálculo científico longo e complexo, e enquanto ele calcula, você quer jogar um jogo que necessitará de mais recursos livres no sistema. Então você poderia digitar:
$ renice +15 785
Neste caso o seu processo vai tomar um tempo maior para completar, mas não vai utilizar tempo de CPU de outros processos.
Se você é o administrador do sistema e percebe que algum usuário está executando muitos processos e utilizando muito recurso, você pode alterar a prioridade dos processos daquele usuário com um único comando:
# renice +20 -u usuario2
Depois disto, todos os processos do usuario2 terão a prioridade mais baixa e não irão obstruir qualquer outro processo lançado por outros usuários.
Agora que você sabe que pode alterar a prioridade dos procesos, você pode querer executar um comando com uma prioridade definida. Para isto, utilize o comando nice.
Neste caso você
precisará especificar o seu comando como uma opção do
nice. A opção -n
é utilizada para
configurar o valor da prioridade. Por padrão o nice
configura a prioridade como 10.
Por exemplo, se você quer criar uma imagem ISO de um CD-ROM de instalação do Mandriva Linux:
$ dd if=/dev/cdrom of=~/mandriva1.iso
Em alguns sistemas, o processo de copiar grande quantidade de informação de um CD-ROM IDE padrão pode utilizar muito recurso do sistema. Para evitar que a cópia bloqueie outros processos, você pode iniciar o processo com uma prioridade mais baixa, através do comando:
$ nice -n 19 dd if=/dev/cdrom of=~/mandriva1.iso