4. Configurando Prioridade para Processos: nice, renice

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.

4.1. renice

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.

4.2. nice

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