Как сделать cpugovernor intel_pstate стабильным?
Я пытаюсь установить конкретную частоту в регуляторе процессора. Однако я не могу этого сделать. Мой процессор 12*Intel(R) Xeon (R) CPU E5-2620 v3 @2,40 ГГц
С драйвером intel_pstate он дает диапазон частот 1,20 ГГц -3,20 ГГц. Текущее масштабирование частоты, я не могу установить конкретную частоту. Я поставил губернатора на производительность. Но это не помогает. cpufreq-set -r -f 3,2 ГГц - не работает;
Я пытался установить более низкую частоту; cpufreq-set -r -d 3,2 ГГц; не показывает никаких ошибок, но даже в этом случае частота продолжает меняться со временем.
Я отключил intel_pstate (при загрузке) и активировал драйвер acpi. Но с помощью acpi я могу получить максимум 2,4 ГГц на 12 ядрах. Эти 2,4 ГГц я могу сделать стабильными все время с помощью cpufreq-set -r -f. Но я не могу установить его на 3,2 ГГц.
Может кто-нибудь сказать, пожалуйста, как настроить использование cpugovernor, чтобы я мог установить частоту 3,2 ГГц? Моя ОС - Ubuntu 14.4.3 LTS, а версия ядра - 3.19.0-25-generic.
Cpufreq-info показывает следующий результат.
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 0.97 ms.
hardware limits: 1.20 GHz - 3.20 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 3.20 GHz and 3.20 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 2.85 GHz.
Для других ядер результаты тоже такие, и текущая частота меняется со временем.
3 ответа
Ваш процессор не может постоянно работать на максимальной частоте 3200 МГц. Если у вас много активных ядер одновременно, максимальная частота составит всего 2,6 ГГц, и этот предел является основополагающим для самого процессора (см. Также скриншот с i7z - строка Max Turbo Multiplier). Тем не менее, вы можете легко получить все процессоры всегда на частоте 2,6 ГГц, задав соответствующие значения минимального и максимального процентов. Тем не менее, обратите внимание, что вы все равно будете наблюдать иногда меньшую частоту, поскольку процессор может отключиться сам по себе в условиях очень низкой нагрузки. Еще проще было бы отключить Turbo и режим производительности, эффективно заставляя весь процессор постоянно работать на частоте 2,4 ГГц (но опять же, сам процессор может отключаться при чрезвычайно низкой нагрузке).
Пример для установки 2,6 ГГц (если я правильно сделал свою математику):
echo "81" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
echo "81" | sudo tee /sys/devices/system/cpu/intel_pstate/min_perf_pct
Пример для нетурбо метода:
echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
$ sudo su
# for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" > $file; done
# exit
exit
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance
performance
performance
У меня была та же самая "проблема" некоторое время назад и я нашел этот простой инструмент командной строки после долгих часов исследований:
https://github.com/pyamsoft/pstate-frequency
Чтобы установить его, просто следуйте инструкциям в репозитории.
Что делает скрипт, так это то, что он позволяет вам сообщить вашему CPU ваши предпочтительные настройки, касающиеся тактовой частоты, регулятора и турбо-наддува.
Но имейте в виду, что поскольку новые процессоры Intel сильно оптимизированы и выполняют управление питанием самостоятельно, вы не можете заставить свой процессор работать, вместо этого предлагайте то, что вы хотите.
Смотрите это из описания pstate-frequency
:
Для современных процессоров Intel частота контролируется самим процессором, а P-состояния, связанные с программным обеспечением, связаны с уровнями производительности. Идея о том, что частота может быть установлена на одну частоту, является фикцией для процессоров Intel Core. Даже если драйвер масштабирования выбирает одно состояние P, фактическая частота, на которой будет работать процессор, выбирается самим процессором.
Чтобы получить максимально возможную тактовую частоту (постоянно 3,2 ГГц (в идеале)) и регулятор производительности, выполните это после установки сценария:
sudo pstate-frequency --color -S -p 3
Ты можешь использовать pstate-frequency -G --color
чтобы получить свой текущий план питания.
Для меня, использующего intel i7-4790K, я получаю постоянно 4400 МГц со всеми ядрами.
Чтобы проверить текущие часы процессора, вы можете использовать:
watch -n 0,3 'cat /proc/cpuinfo | grep "MHz"'
Это перечислит тактовую частоту всех ваших потоков процессора.
В моем случае после установки схемы питания "3" ([...] -p 3
) (производительность) я получаю:
cpu MHz : 4399.843
cpu MHz : 4400.156
cpu MHz : 4391.093
cpu MHz : 4400.000
cpu MHz : 4400.000
cpu MHz : 4400.468
cpu MHz : 4400.156
cpu MHz : 4361.718
С процессором Intel(R) Xeon(R) E5-2680 v4 @ 2,40 ГГц и активным intel_pstate/status я смог установить только максимальную частоту - она все равно будет колебаться между аппаратной минимальной частотой. (1,2 ГГц) и моя установленная максимальная частота. Я смог решить эту проблему, предварительно установив пассивный режим.
echo passive > /sys/devices/system/cpu/intel_pstate/status
cpupower frequency-set --min 2400MHz --max 2400MHz