управление частотой процессора

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

управление частотой процессора

Непрочитанное сообщение Olej » 18 окт 2020, 01:07

Об этом уже есть вскользь, в теме про ARM процессоры (одноплатные SoC): питание Orange Pi и температура.
Идея то, собственно, в том, что управляется не частота, а стратегия управления частотой от ОС, называемая Governor.
Хорошая статья, описание на этот счёт: CPU frequency scaling.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 18 окт 2020, 01:10

Olej писал(а):
18 окт 2020, 01:07
в теме про ARM процессоры
Относительно x86:

Код: Выделить всё

olej@ACER:~$ lscpu
Архитектура:         x86_64
CPU op-mode(s):      32-bit, 64-bit
Порядок байт:        Little Endian
Address sizes:       39 bits physical, 48 bits virtual
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  1
Ядер на сокет:       2
Сокетов:             1
NUMA node(s):        1
ID прроизводителя:   GenuineIntel
Семейство ЦПУ:       6
Модель:              60
Имя модели:          Intel(R) Celeron(R) CPU G1840 @ 2.80GHz
Степпинг:            3
CPU MHz:             2793.445
CPU max MHz:         2800,0000
CPU min MHz:         800,0000
BogoMIPS:            5586.90
Виртуализация:       VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            2048K
NUMA node0 CPU(s):   0,1
Флаги:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer xsave rdrand lahf_lm abm cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust erms invpcid xsaveopt dtherm arat pln pts md_clear flush_l1d
Это то что изначально:

Код: Выделить всё

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
cat: /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies: Нет такого файла или каталога

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ ls /sys/devices/system/cpu/
cpu0  cpufreq  hotplug       isolated    microcode  offline  possible  present  uevent
cpu1  cpuidle  intel_pstate  kernel_max  modalias   online   power     smt      vulnerabilities

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ ls /sys/devices/system/cpu/cpu0
cache    cpuidle      crash_notes_size  firmware_node  microcode  power      thermal_throttle  uevent
cpufreq  crash_notes  driver            hotplug        node0      subsystem  topology

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ ls /sys/devices/system/cpu/cpu0/cpufreq
affected_cpus     cpuinfo_min_freq            related_cpus                 scaling_cur_freq  scaling_governor  scaling_min_freq
cpuinfo_max_freq  cpuinfo_transition_latency  scaling_available_governors  scaling_driver    scaling_max_freq  scaling_setspeed

Код: Выделить всё

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1331033

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
800000

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
2800000
Всё, в общем, интуитивно ясно...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 18 окт 2020, 01:15

Olej писал(а):
18 окт 2020, 01:10
Всё, в общем, интуитивно ясно...
А теперь относительно управления...
Было:

Код: Выделить всё

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1331033
Меняем...

Код: Выделить всё

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ cpupower frequency-set -g performance
bash: cpupower: команда не найдена

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ aptitude search cpupower
p   libcpupower-dev                                                       - CPU frequency and voltage scaling tools for Linux (development files)           
p   libcpupower1                                                          - CPU frequency and voltage scaling tools for Linux (libraries)                   
p   linux-cpupower                                                        - управление мощностью ЦП в Linux                                                 

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ sudo apt install linux-cpupower
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libcpupower1
Следующие НОВЫЕ пакеты будут установлены:
  libcpupower1 linux-cpupower
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 1 057 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 1 311 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://deb.debian.org/debian buster/main amd64 libcpupower1 amd64 4.19.146-1 [483 kB]
Пол:2 http://deb.debian.org/debian buster/main amd64 linux-cpupower amd64 4.19.146-1 [574 kB]
Получено 1 057 kB за 1с (1 212 kB/s)
Выбор ранее не выбранного пакета libcpupower1.
(Чтение базы данных … на данный момент установлен 430731 файл и каталог.)
Подготовка к распаковке …/libcpupower1_4.19.146-1_amd64.deb …
Распаковывается libcpupower1 (4.19.146-1) …
Выбор ранее не выбранного пакета linux-cpupower.
Подготовка к распаковке …/linux-cpupower_4.19.146-1_amd64.deb …
Распаковывается linux-cpupower (4.19.146-1) …
Настраивается пакет libcpupower1 (4.19.146-1) …
Настраивается пакет linux-cpupower (4.19.146-1) …
Обрабатываются триггеры для man-db (2.8.5-2) …
Обрабатываются триггеры для libc-bin (2.28-10) …
Вот теперь всё готово:

Код: Выделить всё

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ sudo cpupower frequency-set -g performance
Setting cpu: 0
Setting cpu: 1

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
2793462

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq
2793461

olej@ACER:~/2020_WORK/own.WORK/Zodiac_Systems$ 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: 800 MHz - 2.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 2.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.79 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: 800 MHz - 2.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 2.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.79 GHz.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 06 фев 2021, 09:31

Ещё раз возвращаюсь к теме оперативного управления частотой процессора и политикой - в связи с оптимизация под компиляцию-сборку (железо и настройки).
В этой теме нет ничего "военного" ;-) - это всё известно и хорошо проработано (в публикациях), но вот заметка, например, де многое собрано до кучи: ЧАСТОТА ПРОЦЕССОРА В LINUX
Обновлено: 6 ноября, 2020

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 06 фев 2021, 09:35

Olej писал(а):
06 фев 2021, 09:31
ЧАСТОТА ПРОЦЕССОРА В LINUX

Код: Выделить всё

olej@nvme:~$ sudo apt install linux-tools-generic
[sudo] пароль для olej:       
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  linux-tools-5.4.0-65 linux-tools-5.4.0-65-generic linux-tools-common
Следующие НОВЫЕ пакеты будут установлены:
  linux-tools-5.4.0-65 linux-tools-5.4.0-65-generic linux-tools-common linux-tools-generic
Обновлено 0 пакетов, установлено 4 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 5.802 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 26,2 MB.
Хотите продолжить? [Д/н] y
Пол:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-common all 5.4.0-65.73 [203 kB]
Пол:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-5.4.0-65 amd64 5.4.0-65.73 [5.594 kB]
Пол:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-5.4.0-65-generic amd64 5.4.0-65.73 [1.988 B]                        
Пол:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-tools-generic amd64 5.4.0.65.68 [2.492 B]                                 
Получено 5.802 kB за 7с (833 kB/s)                                                                                                              
Выбор ранее не выбранного пакета linux-tools-common.
(Чтение базы данных … на данный момент установлено 372445 файлов и каталогов.)
Подготовка к распаковке …/linux-tools-common_5.4.0-65.73_all.deb …
Распаковывается linux-tools-common (5.4.0-65.73) …
Выбор ранее не выбранного пакета linux-tools-5.4.0-65.
Подготовка к распаковке …/linux-tools-5.4.0-65_5.4.0-65.73_amd64.deb …
Распаковывается linux-tools-5.4.0-65 (5.4.0-65.73) …
Выбор ранее не выбранного пакета linux-tools-5.4.0-65-generic.
Подготовка к распаковке …/linux-tools-5.4.0-65-generic_5.4.0-65.73_amd64.deb …
Распаковывается linux-tools-5.4.0-65-generic (5.4.0-65.73) …
Выбор ранее не выбранного пакета linux-tools-generic.
Подготовка к распаковке …/linux-tools-generic_5.4.0.65.68_amd64.deb …
Распаковывается linux-tools-generic (5.4.0.65.68) …
Настраивается пакет linux-tools-common (5.4.0-65.73) …
Настраивается пакет linux-tools-5.4.0-65 (5.4.0-65.73) …
Настраивается пакет linux-tools-5.4.0-65-generic (5.4.0-65.73) …
Настраивается пакет linux-tools-generic (5.4.0.65.68) …
Обрабатываются триггеры для man-db (2.9.1-1) …
То что по дефаулту:

Код: Выделить всё

olej@nvme:~$ cpupower frequency-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:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 2.90 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 2.90 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 800 MHz (asserted by call to kernel)
  boost state support:
    Supported: no
    Active: no

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 06 фев 2021, 09:39

Olej писал(а):
06 фев 2021, 09:35
То что по дефаулту:
На максимум производительности:

Код: Выделить всё

olej@nvme:~$ sudo cpupower frequency-set -g performance
[sudo] пароль для olej:       
Setting cpu: 0
Setting cpu: 1

Код: Выделить всё

olej@nvme:~$ cpupower frequency-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:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 2.90 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 2.90 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 2.90 GHz (asserted by call to kernel)
  boost state support:
    Supported: no
    Active: no

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 06 фев 2021, 09:55

Olej писал(а):
06 фев 2021, 09:39
На максимум производительности:
Можно попробовать вручную управлять частотой...
Это - границы дозволенного:

Код: Выделить всё

olej@nvme:~$ lscpu | grep ^CPU
CPU op-mode(s):                  32-bit, 64-bit
CPU(s):                          2
CPU МГц:                         2900.022
CPU max MHz:                     2900,0000
CPU min MHz:                     800,0000
Но не всегда этот номер (управление вручную) проходит ;-) :

Код: Выделить всё

olej@nvme:~$ sudo cpupower frequency-set -g userspace
Setting cpu: 0
Error setting new values. Common errors:
- Do you have proper administration rights? (super-user?)
- Is the governor you requested available and modprobed?
- Trying to set an invalid policy?
- Trying to set a specific frequency, but userspace governor is not available,
   for example because of hardware which cannot be set to a specific frequency
   or because the userspace governor isn't loaded?
"Элементарно, Ватсон!" :lol: - нужно чтобы ваш процессор ... или системная плата (но мне это безразлично кто и них) позволял такую политику, governor:

Код: Выделить всё

olej@nvme:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
performance powersave
Вот так!
В данном случае мы имеем только 2 политики: или энергосбережение или производительность.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 06 фев 2021, 10:19

Olej писал(а):
06 фев 2021, 09:55
В данном случае мы имеем только 2 политики: или энергосбережение или производительность.
А для других процессоров здесь может быть вообще всё что угодно!:

Код: Выделить всё

olej@nvidia:/sys/module$ lscpu | grep CPU
CPU op-mode(s):                  32-bit, 64-bit
CPU(s):                          4
On-line CPU(s) list:             0-3
Имя модели:                      Intel(R) Core(TM) i5 CPU         660  @ 3.33GHz
CPU МГц:                         1595.218
NUMA node0 CPU(s):               0-3
Vulnerability Mds:               Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable

Код: Выделить всё

olej@nvidia:/sys/module$ cpupower frequency-info
analyzing CPU 0:
  no or unknown cpufreq driver is active on this CPU
  CPUs which run at the same hardware frequency: Not Available
  CPUs which need to have their frequency coordinated by software: Not Available
  maximum transition latency:  Cannot determine or is not supported.
Not Available
  available cpufreq governors: Not Available
  Unable to determine current policy
  current CPU frequency: Unable to call hardware
  current CPU frequency:  Unable to call to kernel
  boost state support:
    Supported: yes
    Active: yes
    33999 MHz max turbo 4 active cores
    33999 MHz max turbo 3 active cores
    33999 MHz max turbo 2 active cores
    33999 MHz max turbo 1 active cores

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 06 фев 2021, 10:24

Olej писал(а):
06 фев 2021, 10:19
А для других процессоров здесь может быть вообще всё что угодно!:
В RPM дистрибутивах (Fedora) всё опять по-другому (в именах пакетов):

Код: Выделить всё

[olej@xenix ~]$ dnf provides cpupower
Последняя проверка окончания срока действия метаданных: 0:03:31 назад, Сб 06 фев 2021 09:13:51.
kernel-tools-5.6.6-300.fc32.x86_64 : Assortment of tools for the Linux kernel
Репозиторий        : fedora
Совпадения с:
Имя файла   : /usr/bin/cpupower

kernel-tools-5.10.11-100.fc32.x86_64 : Assortment of tools for the Linux kernel
Репозиторий        : updates
Совпадения с:
Имя файла   : /usr/bin/cpupower

Код: Выделить всё

[olej@xenix ~]$ sudo dnf install kernel-tools
[sudo] пароль для olej: 
Последняя проверка окончания срока действия метаданных: 0:57:23 назад, Сб 06 фев 2021 08:20:45.
Зависимости разрешены.
==========================================================================================================
 Пакет                         Архитектура        Версия                        Репозиторий         Размер
==========================================================================================================
Установка:
 kernel-tools                  x86_64             5.10.11-100.fc32              updates             215 k
Установка зависимостей:
 kernel-tools-libs             x86_64             5.10.11-100.fc32              updates              22 k

Результат транзакции
==========================================================================================================
Установка  2 Пакета

Объем загрузки: 237 k
Объем изменений: 664 k
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/2): kernel-tools-libs-5.10.11-100.fc32.x86_64.rpm                      146 kB/s |  22 kB     00:00    
(2/2): kernel-tools-5.10.11-100.fc32.x86_64.rpm                           557 kB/s | 215 kB     00:00    
----------------------------------------------------------------------------------------------------------
Общий размер                                                              229 kB/s | 237 kB     00:01     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
  Подготовка       :                                                                                  1/1 
  Установка        : kernel-tools-libs-5.10.11-100.fc32.x86_64                                        1/2 
  Установка        : kernel-tools-5.10.11-100.fc32.x86_64                                             2/2 
  Запуск скриптлета: kernel-tools-5.10.11-100.fc32.x86_64                                             2/2 
  Проверка         : kernel-tools-5.10.11-100.fc32.x86_64                                             1/2 
  Проверка         : kernel-tools-libs-5.10.11-100.fc32.x86_64                                        2/2 

Установлен:
  kernel-tools-5.10.11-100.fc32.x86_64              kernel-tools-libs-5.10.11-100.fc32.x86_64             

Выполнено!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: управление частотой процессора

Непрочитанное сообщение Olej » 06 фев 2021, 10:25

Olej писал(а):
06 фев 2021, 10:24
В RPM дистрибутивах (Fedora) всё опять по-другому (в именах пакетов):

Код: Выделить всё

[olej@xenix ~]$ lscpu | grep CPU
CPU op-mode(s):                  32-bit, 64-bit
CPU(s):                          4
On-line CPU(s) list:             0-3
Имя модели:                      Intel(R) Xeon(R) CPU           E5462  @ 2.80GHz
CPU MHz:                         2000.367
CPU max MHz:                     2803,0000
CPU min MHz:                     2403,0000
NUMA node0 CPU(s):               0-3
Vulnerability Mds:               Vulnerable: Clear CPU buffers attempted, no microcode; SMT disabled

Код: Выделить всё

[olej@xenix ~]$ sudo cpupower frequency-info
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: 2.40 GHz - 2.80 GHz
  available frequency steps:  2.80 GHz, 2.40 GHz
  available cpufreq governors: conservative ondemand userspace powersave performance schedutil
  current policy: frequency should be within 2.40 GHz and 2.80 GHz.
                  The governor "schedutil" may decide which speed to use
                  within this range.
  current CPU frequency: 2.40 GHz (asserted by call to hardware)
  boost state support:
    Supported: no
    Active: no
И здесь (процессор Xeon) большое богатство выбора политик, governor-ов:

Код: Выделить всё

[olej@xenix cpufreq]$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
conservative ondemand userspace powersave performance schedutil 
(правда очень ограниченный диапазон выбора частот от CPU min до CPU max :lol: )

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей