Вопрос или проблема
Процессор Intel Sandy-Bridge семейства i5 Core, работающий на ядре Linux 3.2 (Debian Squeeze/Wheezy), при высокой вычислительной нагрузке не реагирует на команду cpufreq-set -g powersave
(с использованием модуля acpi_cpufreq). Он работает в турбо-режиме 99,9% времени, хотя, кажется, каким-то образом автоматически ограничивается, о чем свидетельствуют сообщения ядра (dmesg
):
...
[137547.968129] CPU2: Температура/скорость пакета в норме
[137547.968130] CPU0: Температура/скорость пакета в норме
[137548.124277] CPU2: Температура ядра выше порога, частота процессора ограничена (общее количество событий = 16455155)
[137548.124280] CPU3: Температура ядра выше порога, частота процессора ограничена (общее количество событий = 16455154)
[137548.125289] CPU2: Температура/скорость ядра в норме
[137548.125291] CPU3: Температура/скорость ядра в норме
[137847.287143] CPU2: Температура пакета выше порога, частота процессора ограничена (общее количество событий = 17888019)
[137847.287147] CPU3: Температура пакета выше порога, частота процессора ограничена (общее количество событий = 17888017)
...
Я хотел бы перевести этот процессор в режим энергосбережения или выбрать частоту, как это было возможно с хорошими старыми губернаторами cpufreq powersave или userpace. Мне интересно, какой метод ручного ограничения будет работать на этих процессорах..
Не так просто уменьшить скорость процессора до определенной частоты, но в этом блоге вы найдете скрипт для отключения турбо-буста: http://notepad2.blogspot.com/2014/11/a-script-to-turn-off-intel-cpu-turbo.html
В ссылке содержится гораздо больше деталей, и ее стоит прочитать, но суть в том,
# Установите msr tools
sudo apt-get install msr-tools
# Отключите турбо-буст для каждого ядра
sudo wrmsr -p"$i" 0x1a0 0x4000850089
где $i
— это номер ядра процессора 0, 1, 2, 3…,
# Включите турбо-буст для каждого ядра
sudo wrmsr -p"$i" 0x1a0 0x850089
(Это, вероятно, решит проблему для многих, кто попал сюда.)
Ответ или решение
Ситуация, описанная вами, связана с тепловым троттлингом процессоров Intel Core i3/i5/i7 архитектуры Sandy Bridge. Давайте подробно обсудим, как можно решить проблему с автоматическим снижением частоты процессора и реализовать более оптимальное управление его режимами работы.
Проблема троттлинга
Вы столкнулись с тем, что процессоры в режиме нагрузки продолжают работать на повышенной частоте (турбо-режим), что приводит к прогреву и последующему троттлингу из-за превышения допустимой температуры. Указания в dmesg
сообщают о том, что температура превышает пороговые значения, и процессор автоматически уменьшает частоту.
Управление частотой процессора
Чтобы избежать автоматического троттлинга, можно вручную управлять частотой процессора, отключив режим Turbo Boost, что, как правило, позволяет снизить температуру и стабильность работы CPU. Ниже приведена инструкция с использованием инструментов для модификации регистров процессора (MSR) на Linux.
Шаги для отключения Turbo Boost
-
Установите необходимые инструменты для работы с MSR:
sudo apt-get install msr-tools
-
Отключите Turbo Boost для каждого ядра с помощью следующей команды:
for i in {0..3}; do sudo wrmsr -p"$i" 0x1a0 0x4000850089 done
Здесь
for i in {0..3}
предполагает, что у вас 4 ядра. Подкорректируйте диапазон в зависимости от кол-ва ядер вашего процессора. -
Чтобы вернуть Turbo Boost обратно, используйте следующую команду:
for i in {0..3}; do sudo wrmsr -p"$i" 0x1a0 0x850089 done
Альтернативные методы управления энергопотреблением
-
Управление частотой с помощью cpufreq:
Попробуйте также задать параметры для командыcpufreq-set
. Убедитесь, что вы используете подходящий губернатор, возможно, применитеconservative
илиondemand
, которые более эффективно справляются с нагрузками. -
Мониторинг температуры:
Установите инструменты для мониторинга температуры процессора, такие какlm-sensors
. Это поможет вам понять, когда процессор начинает перегреваться и начинает троттлить:sudo apt-get install lm-sensors sensors
-
Настройки BIOS:
В некоторых случаях настройки BIOS могут помочь вам управлять параметрами производительности процессора. Откройте настройки BIOS и проверьте, есть ли параметры для управления Turbo Boost или энергосбережением.
Заключение
Если вы следовали всем инструкциям, отключили Turbo Boost и настроили governor, но проблемы с температурой и троттлингом продолжаются, возможно, стоит рассмотреть дополнительные аппаратные решения, такие как улучшение системы охлаждения или снижение нагрузки на процессор.
Если у вас есть дальнейшие вопросы по этому поводу, пожалуйста, не стесняйтесь делиться ими.