Как включить защитные меры для температуры процессора

9

Мой рабочий стол имеет неприятную привычку. Когда у меня запущено несколько приложений высокой интенсивности, и мой процессор в течение некоторого времени работает с максимальной нагрузкой, температура ядра повышается, и мой компьютер автоматически отключается.

Есть ли способ, которым я могу отслеживать (писать скрипт) температуру моего процессора в фоновом режиме и получать какие-то предупреждения, когда она становится выше определенной температуры?

Я использую Opensuse с dwm в качестве моего оконного менеджера. Я обычно использую, sensorsчтобы увидеть температуру моего процессора.

n0pe
источник
1
Под Linux или некоторые другие варианты Unix? Способ получения температуры или уведомления об изменениях температуры отличается в разных вариантах Unix.
Жиль "ТАК - перестань быть злым"
Мой плохой @Gilles, я добавил информацию к своему вопросу
n0pe
После того, как вы увидите это повышение температуры, вы должны уменьшить скорость своего процессора.
Нильс

Ответы:

5

Вы можете написать скрипт для отображения вашей температуры в строке состояния dwm, например:

temp (){
    awk '{print $4"°C"}' <(acpi -t)
    echo $temp
}
xsetroot -name "$(temp)"

Ваш sensorsвывод может быть более сложным, в зависимости от вашей настройки: это работает на одной из моих машин:

 awk '/temp1/ {print +$2"°C"}' <(sensors)

Если вы внесете исправления в statuscolours , вы можете дополнительно изменить цвет вывода, так как он $tempдостигнет более высоких значений ...

Arch Wiki содержит введение в настройку основного сценария строки состояния, а сайт dwm содержит пример .xinitrc .

Вы можете увидеть мой dwm-statusсценарий для более подробной информации: http://beta.intuxication.org/jasonwryan/archer/file/tip/Scripts/dwm-status

jasonwryan
источник
Это действительно отличная идея, о которой я не думал. У меня никогда не было времени поиграться со строкой состояния dwm, так что это будет весело. Я посмотрю, чем смогу, и прокомментирую.
n0pe
Работал отлично, и теперь у меня есть красиво настроенная строка состояния :)
n0pe
Отлично: это дает вам немного возможностей для работы ...
jasonwryan
2

У меня точно такая же проблема, и я использую пакет "cpufreqtools" (или просто "cpufreq" - не помню!).

Он дает вам две команды: cpufreq-info и cpufreq-set

cpufreq-info показывает текущую скорость процессора, а также минимальную и максимальную скорости. и доступные шаги тоже.

cpufreq-set более полезен для вас, потому что вы можете ограничить максимальную скорость, которую когда-либо достигнет ваш процессор.

Мой склонный к перегреву процессор имеет доступные частоты 800 МГц, 1,60 ГГц и 1,80 ГГц. Итак, что я делаю, так это ограничиваюсь частотой 1,60 ГГц:

cpufreq-set - max 1,60 ГГц

Работает как шарм!

Если вы более продвинуты в своих навыках Linux, вы можете даже поместить его в сценарий загрузки, чтобы он всегда выполнялся, как только запускается Linux.

Удачи.

Даниил
источник
cpufrequtils (Ubuntu 16.04).
Зеленое дерево
1

Я создал скрипт для непосредственного решения проблемы перегрева. Ограничьте ваш процессор на основе желаемой температуры. Он работает автоматически в фоновом режиме, как это:

sudo ./temp_throttle.sh 80

Эта команда замедлит работу ядер вашего процессора, когда они достигнут 80 градусов Цельсия. Когда температура понизится, процессорные ядра снова смогут работать быстрее. Вы можете найти temp_throttle здесь .

Sepero
источник
1
В будущем, пожалуйста, не ожидайте, что все, кто запускает Ubuntu со своей стандартной политикой sudo-everything. Либо упомяните, что нужно разрешить скрипт в конфигурации sudo, либо (лучше) просто напишите, что он требует привилегий root, что может быть достигнуто с помощью sudo. Или - в Linux - опишите необходимые возможности (как на capabilities(7)странице руководства ).
Петер