Остановить процессор от перегрева


11

При запуске интенсивных приложений, таких как блендер, мой процессор может достигать 80. Я могу вручную разогнать процессор из BIOS, но я бы хотел, чтобы мой компьютер определял, когда температура процессора становится слишком высокой, и замедлял процесс, пока все не остынет. Есть ли способ сделать это автоматически или даже вручную, чтобы замедлить процессор из Ubuntu


2
В то же время это похоже на запрос функции для Blender. Вы можете вручную использовать Performance Governor и вручную останавливать приложения с помощью системного монитора.
userDepth

Ответы:


11

Решение Intel Ubuntu 16.04+ для Sandy Bridge и более новых процессоров

Из ( wiki.debian.org -thermald ) написано описание Debian (Ubuntu) о Thermald A Linux- демоне для охлаждения планшетов и ноутбуков. Это работает только для Sandy Bridge (2-го поколения) и более новых Intel Cores. Как только температура системы достигает определенного порога, демон Linux активирует различные методы охлаждения, чтобы попытаться охладить систему.

Linux thermal daemon (thermald) отслеживает и контролирует температуру в ноутбуках, планшетах ПК с последними версиями Intel Sandy Bridge и новейшими процессорами Intel. Как только температура системы достигает определенного порога, демон Linux активирует различные методы охлаждения, чтобы попытаться охладить систему.

Работает в двух режимах:

Режим нулевой конфигурации

  • Для большинства пользователей этого должно быть достаточно, чтобы контролировать температуру процессора системы. При этом используется датчик температуры DTS, в качестве методов охлаждения используются драйвер состояния Intel P, драйвер ограничителя мощности, контроль ограничения средней мощности и cpufreq.

Пользовательский режим конфигурации

  • Это позволяет конфигурировать стиль ACPI в файле тепловой конфигурации XML. Это может быть использовано для исправления ошибки конфигурации ACPI или точной настройки путем добавления дополнительных датчиков и охлаждающих устройств. Это первый шаг в реализации терморегулирования в замкнутом контуре в пользовательском режиме, который можно улучшить на основе отзывов и предложений сообщества.

Как установить

apt-get install thermald

TLP

Из Arch Linux :

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

Пожалуйста, прочитайте полную ссылку Arch Linux TLP выше. Есть проблемы с Nvidia, которые требуют изменения конфигурации.

После многих проб и ошибок с другими пакетами, я имел большой успех, используя TLP. Он обеспечивает превосходное управление вентилятором и бесперебойно работает с тепловыми и р-состояниями .

Поскольку в этих инструкциях по установке Ubuntu 15.04+ упоминается, что TLP не только снижает перегрев, но и продлевает срок службы батареи.

После установки TLP Powerclamp (описанный ниже) больше никогда не вызывался.


Intel Powerclamp

Драйвер Intel Powerclamp определен здесь ( kernel.org - Intel Power Clamp.txt ) и является частью описанного выше Thermald . Прямая цитата для Powerclamp по ссылке:

Рассмотрим ситуацию, когда энергопотребление системы должно быть уменьшено во время работы из-за бюджета мощности, тепловых ограничений или уровня шума, и где активное охлаждение не является предпочтительным. Программно управляемое пассивное снижение мощности должно выполняться для предотвращения действий оборудования, разработанных для катастрофических сценариев.

В настоящее время P-состояния, T-состояния (тактовая модуляция) и выключение процессора используются для регулирования производительности процессора.

В процессорах Intel C-состояния обеспечивают эффективное снижение энергопотребления, но пока они используются только в зависимости от рабочей нагрузки. С разработкой драйвера intel_powerclamp был введен метод синхронизации впрыска холостого хода во всех потоковых процессорах. Цель состоит в том, чтобы добиться принудительного и контролируемого проживания в С-государстве.

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


Как вы знаете, Powerclamp работает?

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

lsmod | grep intel

И вы должны увидеть список, похожий на этот:

btintel                16384  1 btusb
bluetooth             520192  29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
intel_rapl             20480  0
intel_powerclamp       16384  0
   (.... more intel drivers ....)
snd                    81920  18 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_idt,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device

Если вы видите, intel_raplи intel_powerclampвы знаете, что это работает и просто ожидания температуры превышают 85C.


Powerclamp в действии отображается Conky

Вот снимок экрана, когда Powerclamp вводит циклы сна:

Детская инъекция

Обычно в этой системе тактовая частота процессора составляет от 2400 МГц до 3400 МГц при просмотре видео HTML5 и 10 открытых вкладок Chrome. Обычно загрузка процессора составляет около 9-12% на 8 процессорах. Когда становится слишком жарко ( 86C ), включается Powerclamp, и это происходит:

  • Скорость процессора снижена до 1200 МГц.
  • Загрузка процессора увеличивается до 80%. Это вводит в заблуждение, потому что дополнительные 70% - это время сна.
  • 9 лучших процессорных процессов обычно состоят из 5 или 6 процессов Chrome плюс Xorg, Conky, Pulse Audio и случайный kworker. Однако теперь 8 из топ-10 - это процесс kidle_inject / x, где xот 0 до 7. Для первых 8 процессоров.

Powerclamp драйвер работает до тех пор , пока темпы снова опускается ниже 85 ° С . Во время работы драйвера вы, возможно, делили паузу в своих видеороликах и, возможно, делили секундную задержку клавиатуры и мыши.


Отключить Intel Turbo Boost

Еще в «прохладные старые времена» Ubuntu 14.04 Intel Turbo Boost был сломан, поэтому скорость моего процессора колебалась между 1200 МГц и 2400 МГц. После обновления до Ubuntu 16.04 он увеличился до 3400 МГц (3,4 ГГц), потому что Turbo Boost наконец заработал. Но это также подняло жару.

Чтобы отключить Intel Turbo Boost, используйте:

echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

Краткосрочное исправление в этом сценарии

Чтобы «исправить» эту проблему, я вытащил из шкафа старую подставку для ноутбука с двумя вентиляторами и подсовывал ее под ноутбук. Это снизило температуру до 63C при той же рабочей нагрузке.

Следующим шагом будет сжатие воздуха в вентиляционных отверстиях. После этого последним этапом станет новый радиатор охлаждения с трубами для CPU и GPU. Хорошая термопаста, такая как Arctic Silver 5, также необходима для этой операции. Новый вентилятор уже был установлен в прошлом году, и, похоже, он работает нормально.

Обновление 25 января 2017

Продуйте вентиляционные отверстия сжатым воздухом, и температура снизится с 63 ° C до 56 ° C. Это все еще с помощью охлаждающей подставки для ноутбука.

Обновление 06 августа 2017

Используете TLP(описано выше) уже много месяцев, температура стабильна около 50С, а производительность вентилятора оптимальна.


Не упустите слишком много драйверов управления вентиляторами

Поскольку это Dell, я установил I8K Fan Monitor / Control в надежде, что он ускорит вентилятор быстрее и быстрее. Когда я печатаю, sensorsя получаю:

$ sensors
dell_smm-virtual-0
Adapter: Virtual device
Processor Fan: 3963 RPM
CPU:            +63.0°C  
Ambient:        +49.0°C  
GPU:            +54.0°C  
Other:          +79.0°C  

acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +106.0°C)
temp2:        +29.8°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +64.0°C  (high = +87.0°C, crit = +105.0°C)
Core 2:         +63.0°C  (high = +87.0°C, crit = +105.0°C)
Core 3:         +57.0°C  (high = +87.0°C, crit = +105.0°C)

Не обращайте внимания на виртуальные темперы, они на обед . Под Ubuntu 14.04 они были точными, и я использовалtemp 1Conky Display. После обновления Ubuntu 16.04 мне пришлось обратиться к третьей температуре, не отображаемой на этом экране. Чтобы увидеть РЕАЛЬНЫЕ временные значения, вы можете использовать эту команду:

$ cat /sys/class/thermal/thermal_zone*/temp
27800
29800
62000

Когда я печатаю:

$ lsmod |grep dell
dell_wmi               16384  0
sparse_keymap          16384  1 dell_wmi
dell_laptop            20480  0
dell_smbios            16384  2 dell_wmi,dell_laptop
dcdbas                 16384  1 dell_smbios
dell_smm_hwmon         16384  0
wmi                    16384  1 dell_wmi
video                  40960  3 dell_wmi,dell_laptop,i915

Я вижу dell_smm_hwmonмодуль ядра / драйвер. Когда я гуглю этот драйвер и I8Kлюди сообщают, что два драйвера вызывают зависание системы на доли секунды каждые 10 секунд или около того. У меня была эта проблема сама, поэтому пришлось убрать управление вентилятором I8K .

Есть много других утилит и методологий охлаждения, но они получают TL; DR .


Вау, это вполне ответ. Здесь много классных вещей.
Qwertie

Я установил Thermald, но как запустить powerclamp? Это работает по умолчанию? какой темп он пытается не превзойти?

@cipricus При использовании: $ lsmod | grep powerвы должны увидеть это: intel_powerclamp 16384 0. Если нет, то Powerclamp может быть занесен в черный список по некоторым причинам. Пороговое значение temp составляет 85C, но я думаю, что вы можете изменить его. Смотрите: bugs.launchpad.net/ubuntu/+source/linux/+bug/1389077
WinEunuuchs2Unix

4

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

sudo ./temp_throttle.sh 80

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


Чтобы запустить основной скрипт при запуске с помощью sudo и ввести пароль в gnome-терминал, можно создать небольшой скрипт:

#!/bin/bash

cd "/path/to/the/directory/temp-throttle-stable/"
gnome-terminal -e 'sudo ./temp_throttle.sh 80' --geometry=45x15 --hide-menubar --profile=hold  

( --geometry=45x15открывает небольшой экран терминала; --profile=holdиспользуется профиль терминала gnome с именем «hold», который уже должен быть создан с опцией «Когда команда выходит: удерживать терминал открытым», --hide-menubarскрывает меню для этого окна)

Сделав его исполняемым, этот небольшой скрипт (давайте назовем его temp_throttle_80.sh) можно добавить в список автозагрузки, и вам будет предложено ввести пароль при запуске; затем, если упомянутая температура достигнута, ее действие сообщается:

введите описание изображения здесь


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

Это отличный ответ и работает в 16.04


Скрипты, которым нужны sudoполномочия, которые я cronиспользую в rebootнастройках Таким образом, нет необходимости вводить пароль при загрузке. Есть и другие способы сделать это, но мне проще всего было установить cron .
WinEunuuchs2Unix

К вашему сведению, ответ, который я разместил на Intel Powerclamp, снижает скорость процессора до минимальной скорости. Однако он также вводит состояния простоя, чтобы процессор ничего не делал. Я думаю, ваш сценарий великолепен, но вы, возможно, захотите узнать, что делает Intel. Я считаю, что это открытый исходный код, и вы можете изучить его, если вы заинтересованы.
WinEunuuchs2Unix

1

Вы можете ограничить частоту ЦП, чтобы снизить частоту и контролировать тепло от ЦП.

cpufreq-selector -f <mention the frq u want in the Khz>

Это постоянный или он вернется после перезагрузки?
Qwertie

это фиксированный набор, и если вы хотите изменить его, снова вам придется.
rɑːdʒɑ

Вам нужно установить, gnome-appletsчтобы это работало
Кири

@ minerz029 это команда терминала, мой друг.
2013 года

1
@rajagenupula Я получаю команду не найдена ошибкаThe program 'cpufreq-selector' is currently not installed. You can install it by typing: sudo apt-get install gnome-applets
Кири
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.