Главная >> Инструкции >> Частота процессора в Linux

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

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

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


Содержание статьи

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

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

lscpu

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

cat /proc/cpuinfo

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

cat /proc/cpuinfo | grep "cpu MHz"

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

lshw

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

sudo apt install hwinfo

hwinfo --short --cpu

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

watch hwinfo --short --cpu

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

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

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

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

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

sudo apt install linux-tools-generic

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

cpupower frequency-info

Как видите, сейчас для управления частотой используется политика 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, как её настроить и зачем это необходимо.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

6 комментариев к “Частота процессора в Linux”

  1. Отлично! Мне как раз нужно было выставить значение по умолчанию, а то после старта системы приходилось менять вручную.

    Ответить
  2. практически тоже самое управление есть в моём биосе: ~$ cat /proc/cpuinfo | grep "cpu MHz"
    cpu MHz : 800.016
    cpu MHz : 800.012
    cpu MHz : 800.051
    cpu MHz : 800.019
    cpu MHz : 800.004
    cpu MHz : 800.015
    cpu MHz : 800.003
    cpu MHz : 800.032
    Ставишь галочку напротив зелёного листика, у вуаля.
    А так да, когда то пользовался на старой материнке. Полезно.

    Ответить
  3. Спасибо за статью! Файрфокс грузит иногда ноут по полной, ноут жрет батарейку как не в себя. Выставил сегодня 400Мгц, было тихо и спокойнее за оставшееся время работыт)

    Ответить
  4. Отличная статья! Спасибо!!!
    у меня какое-то приложение разгоняло до максимума 1 из 16 ядер, а остальные 15 на каких-то очень низких частотах, отчего проц грелся и шумел кулером, установил лимит до половины от максимума, и теперь все ядра примерно поровну на четверти от максимальной частоты колеблются, т.е. каким-то образом это ограничение частоты активировало супер-эффективное распараллеливание!

    Ответить

Оставьте комментарий