Регулятор процессора автоматически меняется на "производительность" под нагрузкой

У меня Lenovo T570 с Xubuntu 18.04 LTS. Моя текущая проблема заключается в том, что мой процессор с быстрым шагом немного сходит с ума и делает то, что считает лучшим.

Пример: когда я запускаю свою IDE и загрузка процессора увеличивается во время сборки, регулятор меняется автоматически. Я поймал момент во время компиляции моего проекта с помощью следующего вызова:

martin@martin-ThinkPad-T570:~$ while cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor; do sleep 1; done
powersave
powersave
performance
performance

cpufreq-info говорит мне это:

martin@martin-ThinkPad-T570:~$ cpufreq-info 
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
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: 4294.55 ms.
  hardware limits: 400 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.50 GHz and 3.50 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.25 GHz.
analyzing CPU 1:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 1
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 4294.55 ms.
  hardware limits: 400 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.50 GHz and 3.50 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.36 GHz.
analyzing CPU 2:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 2
  CPUs which need to have their frequency coordinated by software: 2
  maximum transition latency: 4294.55 ms.
  hardware limits: 400 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.50 GHz and 3.50 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.26 GHz.
analyzing CPU 3:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 3
  CPUs which need to have their frequency coordinated by software: 3
  maximum transition latency: 4294.55 ms.
  hardware limits: 400 MHz - 3.50 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.50 GHz and 3.50 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 3.36 GHz.

Пожалуйста, посмотрите на

текущая политика: частота должна быть в пределах 3,50 ГГц и 3,50 ГГц. Губернатор "производительность" может решить, какую скорость использовать

После этого, чтобы вернуться к powersave, я использую свой маленький скрипт:

martin@martin-ThinkPad-T570:~$ cat cpu_freq_save.sh 
#!/bin/bash
sudo cpufreq-set -g powersave -c 0 --min 400MHz
sudo cpufreq-set -g powersave -c 1 --min 400MHz
sudo cpufreq-set -g powersave -c 2 --min 400MHz
sudo cpufreq-set -g powersave -c 3 --min 400MHz

Что сбрасывает минимальную частоту и регулятор, но как только я снова компилирую с моей IDE каждый раз, когда регулятор и минимальная частота снова меняются.

Любая идея, как я могу отключить это автоматическое изменение?

PS: Если вам нужно больше деталей, просто скажите мне, где их найти, и я предоставлю их

3 ответа

Решение

cpufreqd это демон управления частотой, установленный с:

sudo apt install cpufreqd

Файл конфигурации cpufreqd.conf используется для изменения частоты. Есть два раздела, где вы можете увидеть, как он меняет регулятор на "производительность":

[Profile]
name=hi_boost
minfreq=0%
maxfreq=100%
policy=performance

# full power when AC
[Rule]
name=AC_on
ac=on                   # (on/off)
profile=hi_boost

Сложнее понять, когда он изменится на "энергосбережение", если зарядное устройство аккумулятора не отключено.

Начиная с ядра 3.4 cpufreq встроен в ядро ​​и загружается автоматически. Он включает в себя демон управления частотой, называемый thermald, Таким образом, нет особой необходимости в cpufreqd больше, и это может конфликтовать в вашей системе.

Для еще большей настройки под напряжением батареи tlp Пакет обычно используется в эти дни.

Я играл с разными вещами и в итоге удалил cpufreqd из моей системы и только слева cpufrequtils установлен и стрела это больше не переключает регулятор при нагрузке.

Если вы намереваетесь отключить драйвер intel_pstate, вы можете сделать это во время загрузки с помощью arg ядра. intel_pstate=disable

Это, вероятно, не в ваших интересах, потому что драйвер intel_pstate знает детали того, как работает процессор, и он работает лучше, чем универсальное решение ACPI. Intel утверждает, что intel_pstate "powersave" быстрее, чем универсальный регулятор acpi, с "производительностью", вероятно, из-за того, что выполнение некоторых задач с более высокой частотой будет потреблять меньше энергии, чем более низкая частота, занимающая больше времени, например, арифметические операции, но не для всех задач например, загрузка чего-либо из памяти.

Лучшее, что вы можете сделать, это проигнорировать это и позволить драйверу intel_pstate выполнить свою работу, позволяя использовать встроенную в чип технологию TurboBoost, которая автоматически регулирует частоту на основе номинальной мощности, температуры и предельных значений тока.

Для современных процессоров Intel, таких как Core i5 7300U, который у вас есть (хотя вы не упоминаете модель), частота контролируется самим процессором, а P-состояния, связанные с программным обеспечением, связаны с уровнями производительности. Идея о том, что частота может быть установлена ​​на одну частоту, является фикцией для процессоров Intel Core. Даже если драйвер масштабирования выбирает одно состояние P, фактическая частота, на которой будет работать процессор, выбирается самим процессором.

Источники:

https://unix.stackexchange.com/questions/121410/setting-cpu-governor-to-on-demand-or-conservative

https://www.cnet.com/products/lenovo-thinkpad-t570-15-6-core-i5-7300u-8-gb-ram-256-gb-ssd-20h9000uus/

https://en.wikichip.org/wiki/intel/core_i5/i5-7300u

Другие вопросы по тегам