Снижение тактовой частоты процессоров Intel Core i3/i5/i7 Sandy Bridge

Вопрос или проблема

Процессор 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

  1. Установите необходимые инструменты для работы с MSR:

    sudo apt-get install msr-tools
  2. Отключите Turbo Boost для каждого ядра с помощью следующей команды:

    for i in {0..3}; do
       sudo wrmsr -p"$i" 0x1a0 0x4000850089
    done

    Здесь for i in {0..3} предполагает, что у вас 4 ядра. Подкорректируйте диапазон в зависимости от кол-ва ядер вашего процессора.

  3. Чтобы вернуть Turbo Boost обратно, используйте следующую команду:

    for i in {0..3}; do
       sudo wrmsr -p"$i" 0x1a0 0x850089
    done

Альтернативные методы управления энергопотреблением

  1. Управление частотой с помощью cpufreq:
    Попробуйте также задать параметры для команды cpufreq-set. Убедитесь, что вы используете подходящий губернатор, возможно, примените conservative или ondemand, которые более эффективно справляются с нагрузками.

  2. Мониторинг температуры:
    Установите инструменты для мониторинга температуры процессора, такие как lm-sensors. Это поможет вам понять, когда процессор начинает перегреваться и начинает троттлить:

    sudo apt-get install lm-sensors
    sensors
  3. Настройки BIOS:
    В некоторых случаях настройки BIOS могут помочь вам управлять параметрами производительности процессора. Откройте настройки BIOS и проверьте, есть ли параметры для управления Turbo Boost или энергосбережением.

Заключение

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

Если у вас есть дальнейшие вопросы по этому поводу, пожалуйста, не стесняйтесь делиться ими.

Оцените материал
Добавить комментарий

Капча загружается...