Укажите частоту процессора в качестве параметра ядра CMD_LINE в Linux при загрузке? - PullRequest
0 голосов
/ 17 ноября 2018

Я заменил процессор i5 моего ноутбука на процессор i7, чтобы он мог работать быстрее. Но из-за того, что мощность i7 выше, а температура также выше, чем раньше, мой ноутбук часто зависал. Итак, я использовал cpupower, чтобы указать максимальную частоту процессора, это работает. Теперь мой вопрос: «Есть ли способ указать частоту ЦП в качестве параметра cmd_line ядра Linux во время загрузки?», Поэтому я могу гарантировать, что система загрузилась стабильно и правильно.

Кстати, если новый процессор работает с частотой не более 2,5 ГГц, все в порядке, а производительность в два раза выше, чем у старого. так что думаю стоит поменять процессор.

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

в конце концов у меня есть время ответить на это, потому что я занят для других дел.Я перепробовал все вышеперечисленные решения и выбрал «tlp + lm-sensor + psensor».Вот мое мнение: 1.cpupower - простой, но относительно слабый инструмент, он может устанавливать только максимальную / минимальную частоту процессора и регулятора.2.cpufrequtils в основном такой же, как и cpupower, за исключением того, что он основан на драйверах acpi, а не на драйвере Intel genuin.Я думаю, что драйвер Intel Genuin с поддержкой p_state должен быть лучшим выбором для процессора Intel.Наконец, мой выбор - 3.tlp, в нем есть больше возможностей для мониторинга / регулирования температуры и частоты процессора, а также больше настраиваемых параметров.

Да, как сказал Эрдем Саваски, с tlp MAX / MIN freqs ofвсе ядра процессора могут быть установлены за один шаг, в то время как те не могут делать с cpufrequtils.

Кроме того, я установил lm-сенсоры и psensor.Первое можно рассматривать как драйвер для запроса температуры / частоты / скорости вращения вентилятора, второе - панель с графическим интерфейсом, которая может отображать информацию, как указано выше.С этими инструментами я верю, что мой процессор будет работать стабильно.Но решение «обеспечить стабильную работу ЦП во время загрузки» пока не найдено.Все вышеперечисленное запускается после загрузки, не так ли?

Извините за мой плохой английский, я китаец.Надеюсь я высказал правильно вещи.Еще раз спасибо!

0 голосов
/ 18 ноября 2018

ОБНОВЛЕНИЕ - 2018-11-25

Также хочу отметить, что ниже приведены команды для использования подсистемы CpuFreq без использования какого-либо инструмента (например, cpufrequtils, поскольку он используется для достижения той же цели). Иногда этим инструментам не хватает функций, или они просто не работают так, как нам хочется. Поскольку ядро ​​CpuFreq создает каталог sysfs в каталоге / sys / devices / system / cpu /, некоторые атрибуты доступны для чтения-записи и могут быть изменены на уровне ядра. Эти изменения атрибутов называются политиками, поскольку CpuFreq имеет интерфейс политики в sysfs. Приведенные ниже команды должны работать во время загрузки и быть постоянными между загрузками.

Если регулятор масштабирования выбран как intel_pstate ; (Эта часть может помочь избежать более высоких частот, если решено использовать intel_pstate)

Также турбо можно отключить из-за желания предотвратить более высокие частоты.

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

После этого может быть полезна команда ниже.

echo "70" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct (70 can be changed by another percentage if clock speed and turbo speed is higher numbers. 70-80 should be enough to not reaching above 2.5 GHz)

Этот атрибут объясняется, как показано ниже в https://www.kernel.org/doc/Documentation/cpu-freq/intel-pstate.txt и может помочь уменьшить более высокие частоты процессора.

max_perf_pct: ограничивает максимальное P-состояние, которое будет запрашиваться Водитель. Это выражается в процентах от доступной производительности.

Поскольку P-состояния являются рабочими состояниями, и при переходе Pn в P0 частоты увеличиваются. Таким образом, ограничение максимального P-состояния в процентах от максимального поддерживаемого уровня производительности может быть полезным. Проверьте эту ссылку: https://software.intel.com/en-us/blogs/2008/05/29/what-exactly-is-a-p-state-pt-1

Кроме того, в intel_pstate процессоры имеют одинаковые свойства. При использовании intel_pstate в качестве регулятора масштабирования можно использовать ограничения производительности для каждого процессора в качестве атрибутов cpufreq (например, scaling_max_freq), добавив ниже параметр ядра;

intel_pstate=per_cpu_perf_limits

В противном случае процессоры могут быть установлены отдельно;

echo -n 2457600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo -n 2457600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo -n 2457600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo -n 2457600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq

Но есть важная часть - встроенный скрипт в Linux ( / etc / init.d / ondemand ). Если ondemand или powersave используется в качестве регулятора масштабирования, то настройки, которые мы установили (как выше), могут конфликтовать с этим сценарием. Сценарий должен быть отключен следующей командой:

sudo /usr/sbin/update-rc.d ondemand disable

Более подробная информация здесь: https://help.ubuntu.com/community/UbuntuStudio/Setting_CPU_Governor

После отключения ondemand другие регуляторы масштабирования (например, пространство пользователя, производительность) могут быть установлены и использоваться согласно приведенной выше конфигурации.

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


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

С этим процессом связаны три термина (это уровни подсистемы, которая называется «масштабирование производительности ЦП»), и они должны быть в основном рассмотрены и обсуждены, чтобы убедиться, что все понято правильно.

  • CPUFreq Core

  • Драйвер масштабирования

  • Масштабирующий регулятор

Ядро CPUFreq является базовой платформой и содержит общую инфраструктуру кода для всех платформ, поддерживающих эту функцию.

Драйвер частоты CPU изменяет P-состояния CPU, которые управляются масштабирующими регуляторами и взаимодействуют с аппаратным обеспечением. (P-состояния означают, что они работают, в отличие от C-состояний, в которых они находятся в состоянии ожидания, за исключением состояния C0. Состояние C0 также занято и активно.)

В регуляторах масштабирования реализованы алгоритмы масштабирования.

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

Во-первых, я думаю, intel_pstate сейчас используется в качестве драйвера масштабирования в вашем ноутбуке. Таким образом, его отключение может предоставить нам более продвинутые настройки и больше регуляторов (у intel_pstate есть два регулятора: powersave и performance ). Я думаю, что powersave является регулятором по умолчанию для intel_pstate.

sudo vi /etc/default/grub

Добавить intel_pstate = отключить к параметру GRUB_CMDLINE_LINUX_DEFAULT.

GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"

После добавления параметра выполните следующие команды.

modprobe acpi-cpufreq

sudo update-grub

Вы можете проверить параметры ядра при загрузке с помощью следующей команды

cat /proc/cmdline

Таким образом, acpi-cpufreq будет включен как драйвер масштабирования (из-за отключения intel_pstate). Итак, следующая вещь может быть установка регулятора как userspace для запуска ЦП на желаемых частотах или разрешение его использования по умолчанию ( ondemand должно быть настройкой по умолчанию для acpi-cpufreq).

Первый способ настройки регулятора и настройки максимальной частоты

Если вы хотите изменить регулятор масштабирования (например, на userspace ):

sudo update-rc.d ondemand disable (This command prevents above commands to be reset after reboot)

sudo apt install cpufrequtils (To control the CPU frequency scaling deamon)

echo 'GOVERNOR="userspace"' | sudo tee /etc/default/cpufrequtils

После этих шагов мы должны иметь acpi-cpufreq в качестве драйвера масштабирования и ondemand (если вы не меняли регулятор) в качестве регулятора масштабирования. Итак, последнее, что кажется, это установка максимальной частоты процессора.

Редактирование / etc / default / cpufrequtils, как показано ниже, должно устанавливать частоты процессора. Если файл не существует, создайте его.

MAX_SPEED="2457600"
MIN_SPEED="1536000"

Также проверьте строки ниже в том же файле.

ENABLE="true"
GOVERNOR="ondemand" (or userspace)

Но, таким образом, я думаю, что нет никакой гарантии для установки всех ядер процессора на одинаковые значения частоты. Я видел, как некоторые люди говорили, что ниже (второй способ) устанавливают все ядра процессора в качестве желаемых значений, но не первый способ.

Второй способ настройки регулятора и настройки максимальной частоты

Установить tlp (инструмент управления Linux Power)

sudo apt install tlp

После установки отредактируйте / etc / default / tlp, как показано ниже:

# Выберите регулятор масштабирования частоты процессора: # ondemand, powersave, производительность, консервативный # процессор Intel Core i с intel_pstate водитель: # powersave, performance # Важно: # Вы должны отключить настройки вашего дистрибутива или конфликты будут #
происходят. ondemand достаточно для почти всех рабочих нагрузок, вам следует знаю # что ты делаешь! CPU_SCALING_GOVERNOR_ON_AC = OnDemand
CPU_SCALING_GOVERNOR_ON_BAT = OnDemand

# Установите минимальную / максимальную частоту, доступную для регулятора масштабирования. # Возможные значения сильно зависят от вашего процессора. Для доступных частот смотрите # tlp-stat output, раздел "+++ Processor". CPU_SCALING_MIN_FREQ_ON_AC = 0
CPU_SCALING_MAX_FREQ_ON_AC = 0
CPU_SCALING_MIN_FREQ_ON_BAT = 1536000
CPU_SCALING_MAX_FREQ_ON_BAT = 2457600

Указанные выше настройки следует сохранить после перезапуска или приостановки устройства.

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

cpufreq-info

Примечание: пожалуйста, проверьте ниже страницы для получения дополнительной информации.

Список губернаторов
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt

https://www.kernel.org/doc/html/v4.14/admin-guide/pm/cpufreq.html

https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html

...