Meu laptop (um HP com um chip i3) superaquece como louco toda vez que executo um processo pesado de recursos (como uma compilação grande, extração de tarballs grandes ou ... jogando Flash).
Atualmente, estou procurando algumas soluções de refrigeração, mas tive a ideia de limitar o consumo global de CPU. Imaginei que, se a CPU estiver limitada, é provável que a temperatura pare de aumentar freneticamente e estou disposto a sacrificar um pouco de desempenho para concluir o trabalho.
- Estou errado no meu raciocínio?
- Como posso proceder para limitar o uso geral da CPU?
Se ajudar, estou executando o Debian.
Respostas:
Não sei se limitar a CPU a todo o sistema é algo possível sem muitos hackers, mas você pode limitar facilmente a quantidade de CPU usada por um único processo usando cpulimit
A única maneira de pensar que você é capaz de usar isso efetivamente é escrever um script de wrapper (na verdade, não é possível chamá-lo de script, é muito pequeno) para os aplicativos que você sabe que são porcos de recursos. Por exemplo, você acha que o google-chrome usa muita CPU, pode substituir o binário do google-chrome no seu caminho por algo como:
Eu não testei isso, então leve-o com um grão de sal. No site da cpulimit, parece que você pode definir regras para os limites da CPU em diferentes aplicativos. Não tenho certeza, você teria que dar uma olhada.
fonte
Outra alternativa que não foi mencionada é a
cpufrequtils
que eu instalei e usei no meu laptop com o Debian 6. Permite alterar o algoritmo ( governador , emcpufrequtils
terminologia) que o kernel usa para escalar a taxa de clock para cima e para baixo em resposta para carregar - em particular, ouserspace
governador permite bloquear a frequência de acordo com a sua escolha (é claro que a CPU precisa ser capaz de funcionar nessa velocidade).Eu usei para bloquear um Atom em 800 MHz em vez de 1,6 GHz, por exemplo. É muito fácil de usar.
fonte
Você pode limitar os núcleos da CPU automaticamente com base na temperatura usando o script temp_throttle . Pode ser executado em segundo plano enquanto você se concentra em coisas mais importantes. Um exemplo de como executar:
* Isenção de responsabilidade - eu sou o autor e mantenedor de temp_throttle *
fonte
Entre no BIOS e faça o underclock da CPU. - Não há necessidade de esperteza.
fonte
Visite esta página, explica como instalar e usar
cpulimit
no Debian e Ubuntu:http://www.howtoforge.com/how-to-limit-cpu-usage-of-a-process-with-cpulimit-debian-ubuntu
fonte
Não há necessidade de alterar o governador, você só precisa alterar o valor de
/sys/devices/system/cpu/*/cpufreq/scaling_max_freq
para cada núcleo da CPU.Por exemplo, com isso para o loop:
veja também meu script setcpu .
( comandos originais encontrados aqui )
fonte
Você pode usar
renice
para alterar a prioridade do processo por identificação de processo ou grupo. Dos exemplos pararenice
:Ajuste o valor agradável para que os IDs de processo 987 e 32 tenham um valor agradável mais baixo:
renice -n 5 -p 987 32
Ajuste o valor agradável para que os IDs de grupo 324 e 76 tenham um valor agradável maior, se o usuário tiver os privilégios apropriados para fazê-lo:
renice -n -4 -g 324 76
Ajuste o valor agradável para que o ID numérico do usuário 8 e o usuário sas tenham um valor agradável mais baixo:
renice -n 4 -u 8 sas
fonte