É possível limitar a quantidade de energia da CPU que um processo pode consumir?

16

Gostaria de saber, existe uma maneira de dizer a um processo quanto de energia do processador pode levar?

O problema é que estou convertendo o vídeo com o Arista (conversor de vídeo) e fico chateado com o ventilador rodando como um louco, quando olho para o monitor de tarefas, ele está ocupando 92% da CPU.

Posso (de alguma forma) dizer que pode demorar apenas 20%?

obrigado

equivalente8
fonte

Respostas:

20

Existe a ferramenta cpulimit (também está presente no repositório debian e deve estar em outras distros).

Seu uso é bem simples:

cpulimit -p PID -l MAX_CPU_LEVEL

Você também pode usar o nome do processo ou o caminho completo para o binário. Detalhes que você pode encontrar na página de manual .

pressa
fonte
11
ha-ha :), funciona perfeitamente, graças +1
equivalent8
3
O código no URL anotado não foi atualizado há algum tempo. Outro grupo pegou e continuou o desenvolvimento em limitcpu.sf.net .
James Sneeringer
7

Outra maneira é usar a (relativamente) nova interface do kernel chamada cgroups (artigo da wikipedia aqui ). Ele permite um controle mais refinado da quantidade de CPU / memória / io / etc que um processo / usuário / grupo pode consumir.

Tommy
fonte
0

Embora isso não seja exatamente o que você está procurando, você pode usar o reniceprograma para alterar a prioridade do programa e impedir que ele diminua a velocidade de outros aplicativos no sistema. renice -n 20 -p [pid], onde [pid] é substituído pelo ID do processo da Arista provavelmente reduziria o uso de recursos e diminuiria definitivamente a lentidão do sistema.

recursão
fonte
11
O OP não está reclamando do processo que atrasa outras aplicações, mas o ventilador funcionando como um louco, renicenão pode fazer nada contra o último. Na melhor das hipóteses, ele diminuirá a velocidade do conversor de vídeo, mas os processos concorrentes (se houver) manterão a carga da CPU como antes.
Jlliagre