Linux set cpu frequency

CPU Frequency Scaling On Linux With cpupower

CPU frequency scaling enable OS to scale the frequency of the CPU for several purpose, including power saving and for bench-marking purpose. This tutorial shows how to scale the frequency of CPU manually using cpupower .

  • This is tutorial is written using Ubuntu, but also tested in Arch, should works well with other linux distro too.
  • Most of the commands used below requires root permission.

Installing cpupower

Enter the command below to install the needed tools

$ sudo apt install linux-tools-common linux-tools-generic linux-tools-`uname -r` 

Steps before configuring the frequency

Changing your CPU driver

Run the command to attain CPU information:

$ cpupower frequency-info | grep driver 

It will show up something like this:

which indicates that the current driver is called intel_pstate . For more information regarding the driver, please refer to the document at kernel.org. This driver provides 2 choices of CPU governor which are performance and powersave . However, it doesn’t have the governor for us user to make customization to the frequency.

Hence, we have to replace the driver with other alternatives.

First, open the file /etc/default/grub and add the phrase intel_pstate=disable to the line GRUB_CMDLINE_LINUX_DEFAULT . After adding the phrase it should looks like

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable" 

Upon the next boot, check again the driver in use. If it shows acpi-cpufreq as result then we have successfully replaced the driver. To switch it back simply remove the phrase intel_pstate=disable from the line and run update-grub again.

Changing CPU governor

$ cpupower -c 0 frequency-info 

The result are shown as below:

analyzing CPU 0: driver: acpi-cpufreq CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: 10.0 us hardware limits: 400 MHz - 1.80 GHz available frequency steps: 1.80 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz, 700 MHz, 600 MHz, 500 MHz, 400 MHz available cpufreq governors: userspace performance schedutil current policy: frequency should be within 400 MHz and 1.80 GHz. The governor "userspace" may decide which speed to use within this range. current CPU frequency: Unable to call hardware current CPU frequency: 1.40 GHz (asserted by call to kernel) boost state support: Supported: yes Active: yes 

Within the options at available cpufreq governors , we are going to use the governor userspace which allows us to do modification. If you don’t have userspace in your list then run the command

modprobe cpufreq_userspace 

To choose userspace as the CPU governor and scale the frequency, run the following commands:

$ sudo cpupower frequency-set -g userspace $ sudo cpupower frequency-set -f 1400MHz 

The input unit for the frequency can be Hz, MHz and GHz.

Your CPU should now running at your desired speed.

$ grep MHz /proc/cpuinfo cpu MHz : 1400.082 cpu MHz : 1400.100 cpu MHz : 1400.009 cpu MHz : 1400.000 cpu MHz : 1400.026 cpu MHz : 1400.123 cpu MHz : 1400.026 cpu MHz : 1400.002 

Источник

Частота процессора в Linux

Если вы уже пытались настраивать частоту Linux, то, наверное уже заметили, что частота процессора сама меняется в зависимости от нагрузки на систему. Операционная система устанавливает лимит минимальной и максимальной частоты, и когда нагрузки нет частота автоматически опускается до минимальной, а при появлении нагрузки подымается назад.

Конечно, в интерфейсе BIOS можно зафиксировать частоту на одном уровне, но в этом нет смысла. С точки зрения баланса производительности и энергопотребления лучше оставить всё как есть. Но правила изменения частоты можно настроить. Для этого используются политики CPU Governor. В этой статье мы рассмотрим как узнать частоту процессора Linux, а также как настроить её изменение.

Как узнать частоту процессора Linux

Узнать текущую частоту процессора можно вместе с другой информацией о нём с помощью утилиты lscpu:

Здесь же выводится максимальная и минимальная частота. Текущую частоту для каждого ядра по отдельности вы можете посмотреть в файле /proc/cpuinfo:

Так можно вывести информацию обо всех ядрах на одном экране:

cat /proc/cpuinfo | grep «cpu MHz»

Утилита lshw тоже выводит текущую и максимальную частоту в секции cpu:

Ну и hwinfo выводит нужную нам информацию. Правда, прежде надо её установить:

Если вы хотите отслеживать как меняется частота со временем используйте hwinfo в сочетании с утилитой watch:

Теперь вы знаете как посмотреть частоту процессора Linux, перейдём к управлению.

Управление частотой в Linux

Для управления частотой в операционной системе Linux используются политики CPU Governor. Они определяют как быстро будет изменятся частота при изменении нагрузки. Существует четыре политики:

  • powersave — процессор работает на минимальной частоте;
  • performance — процессор работает на максимальной частоте;
  • ondemand — динамическое изменение частоты, при появлении нагрузки резко устанавливается самая высокая частота, а при снижении нагрузки частота медленно снижается;
  • conservative — аналогично ondemand, только частота меняется более плавно;
  • userspace — использовать частоту заданную пользователем;
  • schedutil — изменение частоты на основе планировщика.

Самый выгодный в данном случае режим — это ondemand, частота повышается при необходимости и опускается если она не нужна. Чтобы посмотреть текущую политику управления частотой вам понадобится утилита cpupower, которую можно установить, установив этот пакет:

sudo apt install linux-tools-generic

Затем посмотрите информацию о процессоре:

Как видите, сейчас для управления частотой используется политика ondemand. Для установки политики используйте команду frequency-set и опцию -g. Например, для performance:

sudo cpupower frequency-set -g performance

Теперь частота гораздо выше, а используемая политика performance. Для того чтобы вручную менять частоту установите политику userspace:

sudo cpupower frequency-set -g userspace

Для установки максимальной частоты используйте опцию -u:

sudo cpupower frequency-set -u 3600Mhz

Для установки минимальной частоты — опцию -d:

sudo cpupower frequency-set -d 2300Mhz

А для изменения текущей частоты процессора — опцию -f:

sudo cpupower frequency-set -f 3500Mhz

Частота всё-равно будет немного колебаться, но эти колебания будут в пределах выбранного диапазона.

Все эти изменения сбрасываются после перезагрузки, поэтому если вы хотите чтобы всё сохранялось, придется создать скрипт с нужными командами и добавить его в автозагрузку.

Если вы любите пользоваться графическим интерфейсом вместо команд, вам понравится утилита cpupower-gui. Она позволяет настроить все необходимые параметры в графическом интерфейсе. Для её установки выполните:

sudo apt install cpupower-gui

Для установки самой последней версии выполните такие команды:

echo ‘deb http://download.opensuse.org/repositories/home:/erigas:/cpupower-gui/xUbuntu_20.04/ /’ | sudo tee /etc/apt/sources.list.d/home:erigas:cpupower-gui.list
curl -fsSL https://download.opensuse.org/repositories/home:erigas:cpupower-gui/xUbuntu_20.04/Release.key | gpg —dearmor | sudo tee /etc/apt/trusted.gpg.d/home:erigas:cpupower-gui.gpg > /dev/null
sudo apt update
sudo apt install cpupower-gui

После завершения установки вы сможете найти программу в главном меню. Её окно выглядит вот так:

Утилита позволяет настроить максимальную и минимальную частоту, а также политику для каждого ядра по отдельности или для всех ядер вместе. Просто выберите нужные значения и нажмите кнопку Apply.

В отличие от консольных команд утилита позволяет устанавливать необходимые вам значения профиля и частоты при старте программы. Для этого в программе есть два профиля Balanced и Performance. Первый использует политику Powersave, а второй — Performance. Для того чтобы выбрать профиль по умолчанию надо отредактировать конфигурационный файл /etc/cpupower_gui.conf:

sudo vi /etc/cpupower_gui.conf

Измените значение параметра Profile на нужное и этот профиль будет выбираться по умолчанию при старте программы, останется только добавить её в автозагрузку. Кроме этих двух профилей можно создавать свои в папке /etc/cpupower_gui.d/. В этой папке уже лежит пример профиля, но рассматривать этот процесс подробнее мы не будем.

Выводы

В этой небольшой статье мы рассмотрели как меняется частота процессора Linux, как её настроить и зачем это необходимо.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Читайте также:  Fedora linux дистрибутивы семейства redhat
Оцените статью
Adblock
detector