Я запускаю проекты распределенных вычислений, которые обычно хотят использовать 100% процессорного времени. Как ограничить использование ЦП с точки зрения температуры, а не процента использования? Кроме того, какова максимальная безопасная температура, чтобы Intel i5 работал 24/7? (Без ограничения CPU FahCore_a4 заставляет эту машину работать при 82 градусах Цельсия.)
источник
Вот как я решил это с помощью bash. Если кто-то придумает лучшего демона (лучше держится при температуре ниже целевой), пожалуйста, опубликуйте его.
источник
Сам процессор имеет механизм, который отключает его, если он слишком горячий. (возможно, нет, если вы отключите прерывания SMI, я не уверен в этом.)
Основным приложением пользовательского пространства является
lm-sensors
пакет. После установки запустите его,sensors-detect
чтобы настроить, если ваши машины одинаковые, вы можете запустить его один раз и использовать полученные результаты везде.Частота процессора легко контролируется через подсистему драйвера cpufreq. см. https://wiki.archlinux.org/index.php/CPU_Frequency_Scaling
Вы можете написать демон, который использует lm-sensor для опроса температуры и, если он слишком горячий, уменьшит частоту процессора.
источник
Именно так я решил свои проблемы с перегревом, которые были вызваны не определенным процессом, а неспособностью моего ноутбука рассеивать тепло, вызванное высокой нагрузкой на процессор в течение более длительных периодов времени. Основное отличие от решения, предлагаемого самим da code monkey, заключается в том, что я использую масштабирование частоты процессора вместо использования cpulimit в конкретном процессе. Так как у меня установлен и работает Psensor, я использую Psensor. Демон, подобный предложенной обезьяной кода, также должен работать, однако требуются два порога (мин и макс). В Psensor (Настройки датчика-> Тревога) я устанавливаю сигнал тревоги для соответствующего датчика, если он становится выше, чем верхний порог (я использую 85), или ниже, чем нижний порог (я использую 80). В Preferences-> Sensors-> Script, выполняемом при возникновении тревоги, я называю свой скрипт heatcontrol.sh следующим образом:
/ALLUSER/heatcontrol.sh powersave ondemand 82
Первый параметр - это допустимый scaling_governor, который уменьшает частоту процессора, например, powersave. Второй параметр по умолчанию - scaling_governor - ondemand для большинства систем. Третий параметр - это температура между нижним и верхним порогом (точное значение не имеет значения). Psensor добавляет еще два параметра: идентификатор датчика и сообщаемую температуру.
И это мой скрипт heatcontrol.sh:
У меня отлично работает (UBUNTU 14.04 LTS).
Будучи новичком в Linux и Bash, я использовал ряд ресурсов, в том числе:
https://wiki.archlinux.org/index.php/CPU_frequency_scaling
http://elinux.org/Jetson/Performance#Viewing_the_current_CPU_status
источник