Categories: Tecnologia

Como definir prioridades de processo com nice e renice no Linux

Fatmawati Achmad Zaenuri / Shutterstock.com

Os comandos nicee renicepermitem que você ajuste como o kernel trata seus processos ajustando suas prioridades. Leia este tutorial para aprender como usá-los em sistemas operacionais Linux e semelhantes ao Unix, como o macOS.

É tudo uma questão de processo

Dentro do seu computador Linux ou semelhante ao Unix, haverá muitos processos em execução antes mesmo de você iniciar o aplicativo que deseja usar. A maioria desses processos são elementos vitais do próprio Linux ou processos de suporte para o seu ambiente gráfico de desktop. Há muita coisa acontecendo nos bastidores. Claro, existem tantos recursos do sistema e tempo de CPU disponíveis. O kernel do Linux é o controlador de todos esses processos.

É o kernel que deve decidir quais processos recebem atenção e recursos agora, e quais devem esperar. O kernel está continuamente fazendo malabarismos com processos e prioridades para garantir que o computador funcione da melhor maneira possível e que todos os processos tenham seu compartilhamento apropriado. Alguns processos recebem tratamento preferencial. Eles são tão importantes para a operação geral do computador que suas necessidades têm que vir antes de, digamos, seu navegador.

O bom valor

Um dos critérios usados ​​para determinar como o kernel trata um processo é o valor agradável. Cada processo tem um bom valor. O valor legal é um número inteiro no intervalo de -19 a 20. Todos os processos padrão são iniciados com um valor bom de zero.

O truque aqui é que quanto maior o valor agradável, mais agradável seu processo será para os outros processos. Em outras palavras, um valor bom alto diz ao kernel que esse processo está feliz em esperar. Um número negativo é o oposto de ser legal. Quanto maior o valor negativo agradável, mais egoísta é o processo. Ele está tentando obter o máximo de tempo de CPU possível, sem levar em consideração os outros processos.

Podemos usar o nicecomando para definir  o valor bom quando um processo é iniciado e podemos usar renicepara ajustar o valor bom de um processo em execução .

O bom comando

Podemos usar o nice comando para ajustar o valor legal de um programa à medida que o iniciamos. Isso nos permite aumentar ou diminuir a prioridade dada ao processo pelo kernel, em relação aos outros processos.

Vamos supor que um programador escreveu um programa chamado ackermann. Isso calcula as funções de Ackerman . É um processo intensivo de CPU e memória. O programador pode iniciar o programa com o seguinte comando:

./ackermann

Podemos usar o topcomando para visualizar o programa em execução.

topo

Podemos ver os detalhes do  ackermannprograma em top. O bom valor é a figura na “coluna NI”. Ele foi definido como zero, como esperávamos.

Vamos reiniciá-lo e desta vez torná-lo menos exigente. Definiremos um bom valor de 15 para o ackermannprograma da seguinte maneira. Digite nice, um espaço, -15, outro espaço e, em seguida, o nome do programa que deseja iniciar. Em nosso exemplo, nosso programador fictício está usando ./ackermann.

nice -15 ./ackermann

Preste atenção, o “-15” não é quinze negativo. São quinze positivos. O “-” é necessário para informar niceque estamos passando um parâmetro. Para indicar um número negativo, você deve digitar dois caracteres “-”.

Se começarmos de topnovo, podemos ver a mudança no comportamento de ackermann.

topo

Com um bom valor de 15, ackermannnão está consumindo muito tempo da CPU. GNOME e Rhythmbox estão usando mais. Nós refreamos ackermannum pouco.

Agora vamos fazer o inverso e fornecer ackermannum valor agradável negativo. Observe o uso de dois caracteres “-”. Para tornar um aplicativo mais egoísta e menos agradável, você deve usar sudo. Qualquer um pode tornar seu aplicativo mais agradável, mas apenas os superusuários podem torná-lo mais egoísta.

sudo nice --10 ./ackermann

Vamos começar e ver que diferença isso fez.

topo

Desta vez,  ackermann tem um bom valor de -10. Ele está de volta à linha de frente e consumindo mais tempo da CPU do que antes.

O Comando Renice

O renicecomando nos permite ajustar o bom valor de um processo em execução. Não precisamos pará-lo e reiniciá-lo com nice. Podemos definir um novo valor imediatamente.

O renicecomando usa o ID do processo, ou PID, do processo como um parâmetro de linha de comando. Podemos extrair o ID do processo da coluna “PID” do top, ou podemos usar pse grepencontrá-lo para nós, como segue. Obviamente, você digitará o nome do seu usuário em vez de dave e o nome do processo no qual está interessado ackermann.

ps -eu dave | grep ackermann

Agora que temos o PID, podemos usá-lo renice. Vamos ackermannvoltar a um comportamento mais agradável com um bom valor de cinco. Para alterar o valor agradável de um processo em execução, você deve usar sudo. Observe que não há “-” no 5 parâmetro. Você não precisa de um para números positivos e só precisa de um, não dois, para números negativos.

sudo renice -n 5 2339

Recebemos a confirmação de que renicealterou o valor agradável. Mostra-nos o valor antigo e o novo valor.

O kernel geralmente faz um ótimo trabalho ao lidar com as prioridades e distribuir o tempo da CPU e os recursos do sistema. Mas se você tem uma tarefa longa e que exige muito da CPU para executar e não se importa quando ela é concluída, isso fará com que seu computador funcione um pouco mais suavemente se você definir um valor agradável mais alto para essa tarefa. Isso será melhor para todos.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

7 meses ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

7 meses ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

7 meses ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

7 meses ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

7 meses ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

7 meses ago