***
Основная задача, описание примеров работы, мотиторинга, управление CPU при разгоне, для GNU/Linux.
PowerTOP – утилита, позволяющая обнаруживать в системе компоненты, которые заставляют ваш PC потреблять больше энергии, чем необходимо, во время простоя.
Начиная с ядра версии 2.6.21, Linux больше не имеет фиксированного времени тика в 1000 Гц. Это теоретически должно увеличить время автономной работы лэптопа, так как процессор больше времени проводит в режиме низкого энергопотребления, когда ваша система простаивает.
Утилита помогает выявить компоненты ядра, а также пользовательские программы, которые являются наибольшими растратчиками энергии компьютера.
Для использования утилиты необходимо наличие ядра с незафиксированным временем тика (NO_HZ), а это ядра, начиная с версии 2.6.21.
На данный момент есть поддержка только 32-х разрядной архитектуры, 64-х битная будет поддерживаться начиная с ядра 2.6.23.
$ powertop
Summary: 2456,9 wakeups/second, 0,0 GPU ops/seconds, 0,0 VFS ops/sec and 20,7% CPU
Usage Events/s Category Description
12,9 ms/s 1010,6 Process /usr/bin/conky -d
17,8 ms/s 408,0 Process kdeinit4: konsole [kdeinit]
62,9 ms/s 360,6 Process /usr/bin/clementine
28,2 ms/s 234,1 Process kdeinit4: plasma-desktop [kde
62,7 ms/s 74,1 Process /usr/bin/Xorg -br :0 vt7 -nol
626,5 µs/s 79,0 Process [rcu_preempt]
241,6 µs/s 25,7 Process /usr/sbin/haveged -w 1024 -v
608,5 µs/s 23,7 Process [rcuop/2]
cpufrequtils— это набор утилит для
масштабирования частоты процессора. Установка этого пакета необязательна,
но крайне рекомендуется, так как предоставляет полезные наборы команд для консоли и демона для запуска масштабирования при старте системы.
powertopпредоставляет ту же информацию, что и команда cpufreq-info, однако уступает ей в детальности.
Настройка масштабирования частоты производится в три этапа:
загрузка соответствующего драйвера управления частотой процессора.
загрузка желаемого регулятора масштабирования.
настройка метода управления регуляторами: ручной (через /sys или cpufreq-set), через cpufrequtils
daemon, laptop-mode-tools, acpid или пи помощи апплета окружения рабочего стола.
- (опционально) настройка масштабирования частоты.
Для корректного управления масштабированием частотой, ОС прежде всего должна знать параметры вашего процессора(ов). Для этого нужно загрузить модуль ядра, который может считывать и управлять параметрами вашего процессора(ов).
Для большинства современных ноутбуков и настольных компьютеров можно использовать драйвер acpi-cpufreq, однако есть ещё такие варианты как p4-clockmod, powernow-k6, powernow-k7, powernow-k8, и speedstep-centrino. Чтобы увидеть полный список, запустите:
$ ls /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq/
Intel
# modprobe acpi-cpufreq
Для более старых процессоров Intel, система может выдать:
FATAL: Error inserting acpi_cpufreq ([...]/acpi-cpufreq.ko): No such device
Загрузка при старте системы
Для автоматической загрузки драйвера во время старта системы, добавьте соответствующий драйвер в массив MODULES в файле /etc/rc.conf. Например:
MODULES=( acpi-cpufreq vboxdrv fuse fglrx iwl3945 ... )
Как только загружен правильный драйвер cpufreq, вы можете посмотреть детальную информацию о вашем процессоре(ах), выполнив:
$ 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.60 GHz - 5.90 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 1.60 GHz and 5.90 GHz.
The governor "powersave" may decide which speed to use
within this range.
Для просмотра списка доступных регуляторов:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
Наблюдать за частотой процессора в режиме реального времени можно, выполнив команду:
$ watch grep "cpu MHz" /proc/cpuinfo
Регуляторы масштабирования (схемы энергопотребления)
Регуляторы можно рассматривать как заранее сконфигурированые схемы энергопотребления процессора. Регуляторы должны быть загружены как модули ядра, чтобы их могли видеть такие программы как kpowersave и gnome-power-manager. Вы можете загрузить столько гувернёров, сколько вам угодно, однако в любой момент времени активным будет только один.
Доступные регуляторы:
cpufreq_performance (по-умолчанию)- регулятор performance(производительность) встроен в ядро и поддерживает процессор(ы) на максимальной тактовой частоте
-
cpufreq_ondemand (рекомендуется) - динамически увеличивает/уменьшает тактовую частоту процессора в зависимости от загруженности системы
- cpufreq_conservative
- похож на ondemand, но более экономный (предпочтение отдаётся меньшим тактовым частотам)
-
cpufreq_powersave - процессор работает на минимально возможной тактовой частоте
-
cpufreq_userspace - тактовая частота задаётся пользователем вручную
Добавьте необходимый регулятор в массив MODULES в /etc/rc.conf (обязательно после модуля acpi-cpufreq) :
MODULES=(acpi-cpufreq cpufreq_ondemand cpufreq_powersave vboxdrv fuse fglrx iwl3945 ... )
Вы можете вручную установить регулятора при помощи команды cpufreq-set(как root), однако, эта настройка не сохранится после перезагрузки/выключения. Например:
# cpufreq-set -g ondemand
Заметьте, что предыдущие команды задавали регулятора только для первого процессора. Если у Вас многоядерный процессор или многопроцессорная система, используйте флаг -c, чтобы задать регулятор для определенного процессора. Например, чтобы задать регулятор для четвертого процессора (нумерация начинается с нуля):
# cpufreq-set -c 3 -g ondemand
Чтобы задать регулятор для всех ядер многоядерного процессора, введите (пример для 6-ядерного процессора):
# for i in 0 1 2 3 4 5; do cpufreq-set -c $i -g ondemand; done
Чтобы задать максимальный и минимальный пределы частоты для регулятора используйте опции -u и -d. Например, зададим максимальный предел 2.20GHz и минимальный предел 1.50GHz для регулятора ondemand и всех ядер 6-ядерного процессора:
# for i in 0 1 2 3 4 5; do cpufreq-set -c $i -g ondemand -u 2.20Ghz -d 1.50Ghz; done
Для дополнительной информации запустите cpufreq-set --help или man cpufreq-set.
Если Вам нужен графический интерфейс для настройки регуляторов или частоты, есть пакет trayfreq, который при запуске появляется в трее.
Дополнительный мониторниг
Вариант-1:
$ cat /proc/cpuinfo | grep "MHz"
cpu MHz : 1708.710
cpu MHz : 1704.609
cpu MHz : 1780.546
cpu MHz : 1637.812
Вариант-2:
$ sudo dmidecode -t processor | grep Speed
Max Speed: 3800 MHz
Current Speed: 3000 MHz
Вариант-3:
$ sudo watch -n 1 cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
Вариант-4:
$ cat /proc/cpuinfo | grep name
$ watch grep MHz /proc/cpuinfo
Код для Conky:

${color #296dac}Mасштабирования частоты процессора${hr 2}$color
CPU1: ${cpu cpu1}% $alignr ${freq} MHz $alignr ${cpubar cpu1 8,60}
CPU2: ${cpu cpu2}% $alignr ${freq} MHz $alignr ${cpubar cpu2 8,60}
CPU3: ${cpu cpu3}% $alignr ${freq} MHz $alignr ${cpubar cpu3 8,60}
CPU4: ${cpu cpu4}% $alignr ${freq} MHz $alignr ${cpubar cpu4 8,60}
Для мониторинга вольтажа достаточно lm-sensor:
$ sensors