Eu corro projetos de computação distribuída, que normalmente querem usar 100% da CPU. Como limito o uso da CPU em termos de temperatura, em vez de porcentagem de uso? Além disso, qual é a temperatura máxima segura para manter um Intel i5 funcionando 24/7? (Sem limite de CPU, FahCore_a4 faz com que esta máquina funcione a 82 graus Celsius.)
temperature
jeffythedragonslayer
fonte
fonte
Aqui está como eu o resolvi usando o bash. Se alguém criar um daemon melhor (melhor em permanecer próximo da temperatura desejada), poste-o.
fonte
A própria CPU possui um mecanismo no qual se desliga se ficar muito quente. (talvez não, se você desativar as interrupções SMI, não tenho certeza disso.)
O principal aplicativo de espaço do usuário é o
lm-sensors
pacote. Depois de instalá-lo, executesensors-detect
para configurá-lo, se suas máquinas forem iguais, você poderá executá-lo uma vez e usar as descobertas resultantes em todos os lugares.A frequência da CPU é facilmente controlada pelo subsistema de driver cpufreq. consulte https://wiki.archlinux.org/index.php/CPU_Frequency_Scaling
Você pode escrever um daemon que use lm-sensores para pesquisar a temperatura e, se estiver muito quente, diminua a frequência da CPU.
fonte
Foi assim que resolvi meus problemas de superaquecimento que não foram causados por um processo específico, mas pela falha do meu laptop em dissipar o calor causado pela execução de uma carga de CPU alta por longos períodos de tempo. A principal diferença para a solução oferecida pelo próprio da code monkey é que eu uso a escala de frequência da CPU, em vez de usar a cpulimit em um processo específico. Desde que eu tenho o Psensor instalado e funcionando de qualquer maneira, uso o Psensor. Um daemon como o macaco de código da sugerido também deve funcionar, no entanto, dois limites (mínimo e máximo) são necessários. No Psensor (Preferências do sensor -> Alarme), defino um alarme para o sensor relevante se ficar mais alto que o limite alto (uso 85) ou mais baixo que o limite baixo (uso 80). Em Preferências-> Sensores-> Script executado quando um alarme é acionado, chamo meu script heatcontrol.sh assim:
/ALLUSER/heatcontrol.sh powersave ondemand 82
O primeiro parâmetro é um scaling_governor válido que reduz a frequência da CPU, por exemplo, economia de energia. O segundo parâmetro é o scaling_governor padrão - ondemand para a maioria dos sistemas. O terceiro parâmetro é uma temperatura entre o limite baixo e o alto (o valor exato não é importante). O psensor adiciona mais dois parâmetros: uma identificação do sensor e a temperatura relatada.
E este é o meu script heatcontrol.sh:
Funciona bem para mim (UBUNTU 14.04 LTS).
Sendo um iniciante no Linux e no bash, usei vários recursos, incluindo:
https://wiki.archlinux.org/index.php/CPU_frequency_scaling
http://elinux.org/Jetson/Performance#Viewing_the_current_CPU_status
fonte