Após alguns dias de pesquisa intensiva, encontrei dois métodos de reduzir o uso de cpu para processos . Geralmente, se você quiser diminuir o uso de CPU da máquina inteira, provavelmente há alguns programas que usam a CPU mais duradoura e você deve restringir aqueles em vez de sobrecarregar a máquina inteira. E, se você fizer isso para economizar bateria, também poderá querer controlar o uso de energia do hardware com, por exemplo, sintonizado ou powertop , a maioria das distros tem ferramentas para ajudá-lo com isso.
- Parar / Continuar sinais
Os sinais estavam por aí desde o UNIX. Você envia um SIGSTOP ou SIGTSTP para um processo (a diferença é que o primeiro pode travar um processo se ele precisar fazer o trabalho de limpeza, os processos não são forçados a parar no último, usar aquele que atende ao seu processo ) para fazer uma pausa (liberando a CPU e possivelmente diminuindo a temperatura). Então você envia um SIGCONT ao processo para retomar, pegando a CPU. Esse método fará uma série de "picos" no gráfico da cpu e impedirá o superaquecimento do processador, porque você não está dando tempo suficiente para isso pausando os processos.
Uma conseqüência desse método é que essas pausas não são suaves , o que significa que a reprodução de vídeo e a navegação na Web também não serão suaves, portanto você pode usar esse método com comandos shell -process programas ou comandos como o Google Chrome ou make não irá funcionar bem com este método também). Obviamente, não é recomendado pausar / retomar processos do sistema, como systemd.
Embora você possa fazer isso manualmente, o cpulimit é um ótimo programa pequeno que usa esse método (ele usa SIGSTOP / SIGCONT). Ao contrário da descrição, o cpu% especificado é entre 0 e 100, mesmo se você tiver vários núcleos. E você sempre pode suspender um trabalho no terminal com Ctrl-Z.
- cpupower (altamente recomendado)
Este é construído no kernel do Linux, então a maioria das distros deve fornecê-lo (obtenha aqui se você não tiver isso). Este utilitário de linha de comando gerencia a frequência da CPU para que praticamente controle toda a cpu usando estados do governador (por exemplo, desempenho, economia de energia, etc.), ele também pode fazer outras coisas. Diferente do método pause / resume, os processos são muito mais fáceis com isso. Você precisará definir a frequência máxima para o processador.
- Execute
cpupower frequency-info
para ver seus estados de processador disponíveis. - Como root, digite
cpupower frequency-set -u <frequency>
, comece com o mais baixo e tente encontrar a frequência mais alta que não superaquece. - (isso é opcional) Se você quiser, pode instalar o pacote lm_sensors, que permite ver a temperatura do seu sistema. Em seguida, execute
sensors-detect
e responda "sim" a todas as perguntas. Por último, executesensors
para ver as temperaturas atuais e críticas (além das quais o sistema superaquece).
Neste ponto, a temperatura atual deve ser muito menor agora. Esteja ciente de que alguns programas que exigem muito desempenho, como jogos, podem travar depois de digitar o comando acima, se você receber uma janela pop-up com essa mensagem, deverá aguardar o programa em vez de forçar a saída. Observe que você precisa digitar esse comando toda vez que o sistema for reinicializado (a menos que seja possível executá-lo automaticamente). Veja este e isso para mais informações sobre o cpower.