Todo processo em execução no Linux possui certas prioridades de acesso de CPU, Memória e Disco. Alguns processos possuem mais prioridade de acesso a esses recursos do que outros processos. O próprio sistema gerencia essa prioridade, dando maior acesso aos processos que possuem essa maior demanda.
Podemos, contudo, especificar prioridades utilizando os comandos nice, renice e ionice.
Vejamos quando e como utilizá-los.
Comando “nice”:
O comando nice nos permite especificar a prioridade de CPU e Memória com a qual um processo será iniciado. Ou seja, o processo iniciará com a prioridade que especificarmos e manterá essa prioridade até que seja finalizado.
O comando para isso seria:
nice prioridade comando
Exemplo:
nice -10 rm -f arquivos.txt
Desta forma, o comando “rm -f arquivo.txt” será executado com prioridade “-10”.
As prioridades possíveis vão de -19 à +19 sendo que -19 é mais prioritário do que +19. O termo “nice” significa legal. A prioridade -19 é menos legal do que +19, pois demandará mais “atenção do sistema” e por isso é mais prioritário. Sacou? Então beleza!
Comando “renice”:
O comando renice é similar ao nice. A diferença entre eles é que o renice é utilizado em processos que já estão em execução.
A syntax dele é esta:
renice -10 -p PID
Exemplo:
renice -10 -p 25876
Desta forma, o processo cujo PID é 25876 passará para prioridade “-10”.
Observe que é preciso ter o número do PID para trocarmos a prioridade do processo.
Caso queiramos trocar a prioridade dos processos de um determinado usuário, podemos utilizar o parâmetro “-u” e especificarmos esse usuário. Exemplo:
renice -10 -u usuario
Com isso, todos processos desse usuário passarão para prioridade “-10”.
Comando “ionice”:
O comando ionice atribui maior ou menor prioridade na leitura e escrita no disco. Ou seja, diferentemente de “nice” e “renice”, que trabalham com prioridade sobre CPU e Memória, o comando “ionice” trabalha com prioridade de leitura e escrita.
A syntax do comando é esta:
ionice -C prioridade -p PID
As possíveis prioridades são:
Exemplo:
ionice -c 3 -p 25876
ionice -c 2 -p 25876
ionice -c 1 -p 25876
Conclusão
Como dito anteriormente, o Linux gerencia a prioridade de processos da forma como ele, Linux, considera ser melhor para o sistema. Acontece que, as vezes, o melhor para o sistema não é melhor para nós, então a troca da prioridade de um processo se faz necessária. Com esses 3 comandos, como vimos anteriormente, podará gerenciar prioridades como bem entender. Só tome cuidado para não gerar sobrecargas desnecessárias.