Автор Тема: cpufreqd.conf вольная шпаргалка  (Прочитано 4410 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Utility

cpufreqd.conf вольная шпаргалка
« : 29 Июня 2015, 02:17:59 »
cpufreqd.conf , рекомендуется перед настройкой демона составить список событий по которым демон применяет правила, например вкл от сети/бп или нет.
структура
Секция применяемых переменных и значений
[General]
Spoiler: ShowHide

poll_interval= float более 0.15, в секундах. По умолчанию: 1.0
enable_plugins= list1, list2, ... cpufreqd 2.1.0 и выше автоматически подгружает и чистит после прочтения.Прим. Читай как устаревший
pidfile= spec path файл для записи PID. По умолчанию:  /var/run/cpufreqd.pid
enable_remote= bool создать на чтение-запись UNIX socket (локальный), для cpufreqd-set/cpufreqd-get
remote_group= spec group указать группу с чтением-записью UNIX socket, для cpufreqd-set/cpufreqd-get
double_check= bool для опроса и корректности перечитывает передаваемые ядру атрибуты
verbosity= 0...7 уровень журналирования. По умолчанию 4, warninng,error, critical

[/General]

[Profile]
Spoiler: ShowHide

name= string обязательный. произвольное и уникальное имя вашего профиля
minfreq= % или int в kHz см обязательный, cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_min_freq
maxfreq= % или int в kHz см обязательный, cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq
policy= string обязательный, применяемая политика, которая собрана как модуль ядра и загружена до cpufreqd, см cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors
other plugin entries= list1, list2, ... навреное так прочие доступные директивы профиля для включения плагинов

[/Profile]

[Rule]
Spoiler: ShowHide

name= string обязательный. произвольное и уникальное имя вашего профиля
profile= name profile=CPU%d:%s;CPU%d:%s:.../name profile=ALL:%s обязательный, пример profile=CPU0:profile0;CPU1:profile1
other plugin entries= list1, list2, ... навреное так прочие доступные директивы профиля для включения плагинов

[/Rule]

PLUGINS

Это расширения cpufreqd для более экзотичных систем.

[acpi]
Spoiler: ShowHide

acpid_socket= spec path отрыть socket для событий обновления от battery, ac. по умолчанию, /var/run/acpid.socket
battery_update_interval= int число в секундах, для опроса battery
battery_interval= %d-%d/%d/%s:%d-%d %d это процент, а %s имя, см ls /proc/acpi/battery. Пример: battery_interval=10-100
ac= on/off внешний источник питания, читай как питание от розетки/ внеш. блока питания
acpi_temperature= %d-%d/%d/%s:%d-%d %d в процентах от максимального, а %s имя. см. ls /proc/acpi/thermal_zone. Пример: acpi_temperature=10-100


[/acpi]

[apm]
Spoiler: ShowHide

ac= on/off внешний источник питания, читай как питание от розетки/ внеш. блока питания
battery_interval= %d-%d/%d %d это процент. Пример, battery_interval=10-100

[/apm]

[pmu]
Spoiler: ShowHide

ac= on/off внешний источник питания, читай как питание от розетки/ внеш. блока питания
battery_interval= %d-%d/%d %d это процент. Пример, battery_interval=10-100

[/pmu]

прим. Thermal Assist Unit, см  cat /proc/cpuinfo | grep tau
[tau]
Spoiler: ShowHide

tau_temperature= %d-%d/u] имеет высокий приоритет, если между значениями. Пример:  tau_temperature=30-60

[/tau]

[cpu]
Spoiler: ShowHide

cpu_interval= %d-%d/%d:%d-%d;%d:%d-%d;..../ALL:%d-%d/ANY:%d-%d/%d-%d,%f/%d:%d-%d,%f
Примеры: cpu_interval=10-100 cpu_interval=1:50-100 cpu_interval=0:50-100;1:0-60 cpu_interval=ANY:50-100 cpu_interval=1:70-100,1.5
%f по умолчанию, 3. %f это nice_PID разделённый на %f Допускается перекрытие cpu_intervals.
Настройка имеет приоритет между значениями. Cpu-interval это загрузка ЦПУ, в каких попугаях? наверное %
exec plugin: выполнить команду в этом Rule/Profile
exec_pre= string ман молчит
exec_post= string Пример: exec_post=echo 3 > /proc/acpi/sony/brightness

[/cpu]

[programs]
Spoiler: ShowHide

programs= list1, list2, ... когда среди запущенных есть эта программа, можно указывать полносью пути. Пример: programs=xine,mplayer,gmplayer

[/programs]

[nforce2_atxp1]
Spoiler: ShowHide

vcore_path= path определить путь создания файла для модуля atxp1 который хранит изменения Vcore. Пример: vcore_path=/some/path
vcore_default= int Для материнок с NForce2, только для инициализации atxp1 когда power-on, нужен обратный Vcore по умолчанию для reboot.
Здесь указано bcgjkmpetvjt значение Vcore для exit. Пермиер: vcore_default=1500
vcore= int значение в mV, для отправки Vcore в указанном Profile. имеет смысл значения в диапазоне от 1200 до 1850.

[/nforce2_atxp1]
Прим. NOTE: you MUST use this  plugin  ONLY with supported cards. See also the nvclock homepage (http://www.linuxhardware.org/nvclock).

[nvclock]
Spoiler: ShowHide

nv_core= int в MHz/%d:%d указать частоту ядра. Можно указать номер видеокарты:частоту ядра. Например: nv_core=0:400
nv_mem= int в MHz/%d:%dуказать частоту памяти. Можно указать номер видеокарты:частоту памяти. Например: nv_mem=0:400

[/nvclock]
Прим. lm-sensors features to watch, see `sensors -u' to find  out  which sensors are available on your system.
[sensors_plugin]
Spoiler: ShowHide

sensors_conf= spec path указать директорию sensors.conf для cpufreq для работы с sensor library
sensor= %s:%f-%f где %s "этикетка".  Например sensor=CPU Temp (motherboard sensor):0-50 и sensor=temp1:0-50

[/sensors_plugin]

Прим. В [Profile] указать параметры. Текущие ondemand и conservative поддерживают. Описание каждого есть в governors.txt в документации к ядру 2.6.16 и выше
Note: `ignore_nice' was renamed  to `ignore_nice_load'  in  kernel  version  2.6.16.  Both names are accepted in cpufreqd.conf, regardless the version of the running kernel.

[governor_parameters]
Spoiler: ShowHide

sampling_rate= `%' в %/`s' в секундах/`m' в милисекундах `u' в микросекундах по умолчанию 'u'. как часто проверять использование ЦПУ
up_threshold= `%' порог, средний порог загрузки на повышение частоты
down_threshold= % обратное up_threshold и только для conservative.
sampling_down_factor= int насколько "легко" частота понизится относительно повышения. см cat /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
ignore_nice=, ignore_nice_load= bool не замечать nice процессы, если 1.
freq_step= % только для conservative. шаг частоты выше-ниже от максимального значения. Автоподгонка для следующего значения.

[/governor_parameters]

Стационар = MB: ASRock N68-gs4 FX R2.0 ; CPU: Athlon II x3 460 => Phenom B60; RAM: 2x Kingston KVR1333D3N9/4G; VGA: zotac gt630 4G
Ноутбук = ASUS x55a = MB: chipset HM70; CPU: Celeron B820; RAM: 2G: VGA: intel3000; audio VT1802
 

Оффлайн Utility

Re: cpufreqd.conf вольная шпаргалка
« Ответ #1 : 01 Июля 2015, 02:51:06 »
Предупреждаю о одной особенности:
Spoiler: ShowHide
atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:      +1.20 V  (min =  +0.85 V, max =  +1.60 V)
 +3.3 Voltage:      +3.30 V  (min =  +2.97 V, max =  +3.63 V)
 +5 Voltage:        +5.02 V  (min =  +4.50 V, max =  +5.50 V)
 +12 Voltage:      +12.10 V  (min = +10.20 V, max = +13.80 V)
CPU FAN Speed:     3245 RPM  (min =  600 RPM, max = 7200 RPM)
CHASSIS FAN Speed:    0 RPM  (min =  600 RPM, max = 7200 RPM)
POWER FAN Speed:      0 RPM  (min =  600 RPM, max = 7200 RPM)
CPU Temperature:    +38.0°C  (high = +60.0°C, crit = +95.0°C)
MB Temperature:     +31.0°C  (high = +45.0°C, crit = +75.0°C)

k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +32.5°C  (high = +70.0°C)
                       (crit = +99.5°C, hyst = +97.5°C)

На такой вывод писать в /etc/cpufreqd.conf через sensors:
[Rule]
name=Critical&Shutdown
profile=my_userspace
cpu_interval=0:0-100,3;1:0-100,3;2:0-100,3;3:0-100,3
sensor=CPU Temperature:60-95           #60,95
sensor=MB Temperature:40-75             #45,75
sensor=temp1:60-99                            #70,99.500 PCI adapter
exec_post=systemctl hibernate
[/Rule]
Такой будет "проваливаться" в переключение, а если дополнить sensors=blah blah RPMfsn:1500-2000, то будет срабатывать по первому совпадению с любым из параметров. НО!
НО! чем чревато, когда вы выставили все хотелки и в том числе fan`ы, через sensors; то огребёте после первого reboot, выхода из сна и т.п. почему?
[Rule]
name=Critical&Shutdown
profile=my_userspace
cpu_interval=0:0-100,3;1:0-100,3;2:0-100,3;3:0-100,3
sensor=CPU Temperature:60-95           #60,95
sensor=MB Temperature:40-75             #45,75
sensor=temp1:60-99                            #70,99.500 PCI adapter
exec_post=sensors > /root/somefile
[/Rule]
Увидете, что sensors при инициализации, нифигашки не видит fan`ы и ваш cpufreqd будет сваливать в exec_post=blah_blah

Другими словами, мне нужно было предохранить системник от перегрева (рендерю) и с некой вероятностью сохранить данные. Критерий температура, потому и буду по нему мониторить. А через sensors fanы прописывать стал, на "пожарный случай", когда какой-либо будет давать 0 RPM.
ТАК ЧТО МОНИТОРТЕ ТОЛЬКО ТЕМПЕРАТУРУ, А КАЖДЫЙ ПЕРЕКЛЮЧАТЕЛЬ РАБОТАЕТ ПРИ ВСЕХ КРИТЕРИЯХ ИЗ ДИАПАЗОНА.
Спасибо
 PS боялся, что "дёргание" поломало ahci на южном и капец двум жестким)


Cообщение объединено 01 Июля 2015, 02:59:22
да и еще, "шаг" у вентилятора порядка 500 rpm

Cообщение объединено 01 Июля 2015, 23:40:39
На заметку, очередь sensors не влияет на приоритет. При этом "оперативность" включения регулировщика зависит от CPU.
смотрел top, sensors, /proc. Пришёл к выводу, что (в моём случае точно) cpufreqd переключает при критерию CPU, прочее игнорирует. Изучал на предмет срабатывания температуры на GPU
« Последнее редактирование: 01 Июля 2015, 23:40:39 от Utility »
Стационар = MB: ASRock N68-gs4 FX R2.0 ; CPU: Athlon II x3 460 => Phenom B60; RAM: 2x Kingston KVR1333D3N9/4G; VGA: zotac gt630 4G
Ноутбук = ASUS x55a = MB: chipset HM70; CPU: Celeron B820; RAM: 2G: VGA: intel3000; audio VT1802
 

Оффлайн VKH

Re: cpufreqd.conf вольная шпаргалка
« Ответ #2 : 08 Августа 2015, 15:59:36 »
имею процессор 825, 1320, 1650мгц
Настроил cpufreqd.con: оставил три режима conservative high, conservative low и powersave high. В cpufreq установлен режим userspace. А переключения на разные режимы, указанные в cpufreqd, нет. В чем может быть проблема?
сам конфиг:
Spoiler: ShowHide
# this is a comment
# see CPUFREQD.CONF(5) manpage for a complete reference
#
# Note: ondemand/conservative Profiles are disabled because
#       they are not available on many platforms.

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=2
verbosity=4
#enable_remote=1
#remote_group=root
[/General]

#[acpi]
#acpid_socket=/var/run/acpid.socket
#[/acpi]

#[sensors_plugin]
#sensors_conf=/some/file
#[/sensors_plugin]

[Profile]
name=Powersave High
minfreq=0%
maxfreq=33%
policy=powersave
[/Profile]

#[Profile]
name=Conservative High
minfreq=0%
maxfreq=100%
policy=conservative
#[/Profile]

#[Profile]
name=Conservative Low
minfreq=0%
maxfreq=66%
policy=conservative
#[/Profile]

##
# Basic states
##
# when AC use conservative mode
[Rule]
name=AC Rule
ac=on                    # (on/off)
profile=Conservative High
[/Rule]
 
# stay in performance mode for the first minutes
[Rule]
name=AC Off - High Power
ac=off                   # (on/off)
battery_interval=65-100
#exec_post=echo 5 > /proc/acpi/sony/brightness
profile=Conservative High
[/Rule]

# conservative mode when not AC
[Rule]
name=AC Off - Medium Battery
ac=off                   # (on/off)
battery_interval=30-65
#exec_post=echo 3 > /proc/acpi/sony/brightness
profile=Conservative Low
[/Rule]

# conservative mode when not AC
[Rule]
name=AC Off - Low Battery
ac=off                   # (on/off)
battery_interval=0-30
#exec_post=echo 3 > /proc/acpi/sony/brightness
profile=Powersave High
[/Rule]

##
# Special Rules
##
# CPU Too hot!
[Rule]
name=CPU Too Hot
acpi_temperature=30-84
cpu_interval=30-84
profile=Conservative High
[/Rule]

# CPU Too hold!
[Rule]
name=CPU Too Hold
acpi_temperature=84-90
cpu_interval=84-92
profile=Powersave High
[/Rule]

[governor_parameters]
sampling_rate=2s 
up_threshold=85
down_threshold=50
sampling_down_factor=1
freq_step=33
ignore_nice_load=0
[/governor_parameters]
« Последнее редактирование: 08 Августа 2015, 17:02:35 от VKH »
 

Оффлайн Malaheenee

Re: cpufreqd.conf вольная шпаргалка
« Ответ #3 : 09 Августа 2015, 00:08:26 »
Ребят, pm-utils умеет почти тоже самое.
Все мы где-то, когда-то и в чем-то были новичками.
 

Оффлайн Vlad

Re: cpufreqd.conf вольная шпаргалка
« Ответ #4 : 04 Декабря 2016, 18:42:09 »
Чем можно изменять максимальную частоту процессора в зависимости от нагрузки? Сейчас используется intel_pstate, не нравиться что постоянно частота процессора дёргается при малейшем изменении нагрузки. Хотелось бы к примеру до 50% загрузки вообще не увеличивать частоту и т.п. cpufreqd как мне показалось ничего не делает. Пока нашёл способ вручную задать верхнюю частоту в /sys/devices/system/cpu/intel_pstate/max_perf_pct, хотелось бы нормальный автомат.
 

Оффлайн yoric

Re: cpufreqd.conf вольная шпаргалка
« Ответ #5 : 04 Декабря 2016, 18:59:11 »
Регулятором "ondemand", всё остальное от лукавого. Он, кстати, настраивается. Но и по умолчанию неплохо.

globus@aspera ~ $ ls -l /sys/devices/system/cpu/cpufreq/ondemand/
-rw-r--r-- 1 root root 4096 дек  4 22:54 ignore_nice_load
-rw-r--r-- 1 root root 4096 дек  4 22:54 io_is_busy
-rw-r--r-- 1 root root 4096 дек  4 22:54 powersave_bias
-rw-r--r-- 1 root root 4096 дек  4 22:54 sampling_down_factor
-rw-r--r-- 1 root root 4096 дек  4 22:54 sampling_rate
-r--r--r-- 1 root root 4096 дек  4 22:54 sampling_rate_min
-rw-r--r-- 1 root root 4096 дек  4 22:54 up_threshold

globus@aspera ~ $ ls -l /sys/devices/system/cpu/cpu0/cpufreq/
-r--r--r-- 1 root root 4096 дек  4 22:54 affected_cpus
-r--r--r-- 1 root root 4096 дек  4 22:54 bios_limit
-rw-r--r-- 1 root root 4096 дек  4 22:54 cpb
-r-------- 1 root root 4096 дек  4 22:54 cpuinfo_cur_freq
-r--r--r-- 1 root root 4096 ноя 29 11:54 cpuinfo_max_freq
-r--r--r-- 1 root root 4096 дек  4 22:54 cpuinfo_min_freq
-r--r--r-- 1 root root 4096 дек  4 22:54 cpuinfo_transition_latency
-r--r--r-- 1 root root 4096 дек  4 22:54 freqdomain_cpus
-r--r--r-- 1 root root 4096 дек  4 22:54 related_cpus
-r--r--r-- 1 root root 4096 дек  4 22:54 scaling_available_frequencies
-r--r--r-- 1 root root 4096 дек  4 22:54 scaling_available_governors
-r--r--r-- 1 root root 4096 ноя 28 21:44 scaling_cur_freq
-r--r--r-- 1 root root 4096 дек  4 22:54 scaling_driver
-rw-r--r-- 1 root root 4096 дек  4 22:54 scaling_governor
-rw-r--r-- 1 root root 4096 дек  4 22:54 scaling_max_freq
-rw-r--r-- 1 root root 4096 дек  4 22:54 scaling_min_freq
-rw-r--r-- 1 root root 4096 дек  4 22:54 scaling_setspeed
 

Оффлайн Vlad

Re: cpufreqd.conf вольная шпаргалка
« Ответ #6 : 04 Декабря 2016, 19:25:16 »
Регулятором "ondemand", всё остальное от лукавого. Он, кстати, настраивается. Но и по умолчанию неплохо.
У меня нет такого, только performance powersave.

Пока нашёл вот этот мануал, работает почти как нужно, при загрузке процессора, примерно через 10-15 сек. тот выходит на максимум. В простое 1 ГГц, не пойму пока как уменьшить до минимальной в 800 МГц.

 

Оффлайн yoric

Re: cpufreqd.conf вольная шпаргалка
« Ответ #7 : 05 Декабря 2016, 12:00:24 »
А куда девался?  В дебиане он есть, по умолчанию стоит. Ядро сами собирали, или что за система?
 

Оффлайн Aalexeey

Re: cpufreqd.conf вольная шпаргалка
« Ответ #8 : 05 Декабря 2016, 21:19:23 »
нет такого, только performance powersave
У меня тоже не было пока не внёс в GRUB_CMDLINE_LINUX_DEFAULT  intel_pstate=disable

https://debianforum.ru/index.php?topic=6879 100% защиты от "Ааааа у меня всё поломалось"
 

Оффлайн Vlad

Re: cpufreqd.conf вольная шпаргалка
« Ответ #9 : 06 Декабря 2016, 19:55:16 »
А куда девался?  В дебиане он есть, по умолчанию стоит. Ядро сами собирали, или что за система?
Без понятия. Система Debian 8.6. Вот тут вот:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governorsтолько performance powersave. По описанию в интернете, это доступные регуляторы. Остальные видимо нужно самому включать. Тут вот в чём дело, процессор и так меняет частоту от нагрузки, просто мне не нравится логика этой смены, при небольшой загрузке (до 10%) частота скачет до максимальной 3,5 ГГц. Эта система у меня работает в роли маршрутизатора (и ещё доп. функционал) круглые сутки и такой режим работы процессора как мне кажется ни к чему. 800 МГц ему вполне хватает на 90 % всех задач. Всё это я к чему? Допустим регулятор "ondemand" насколько он изменит поведение процессора, если не ставить cpufreqd, я так понял что "ondemand" сам неплохо справляется? Сейчас логика работы на чём основана с выше указанными регуляторами? Только от bios? Просто я боюсь что будет не особо лучше, поэтому решил что нужно вмешаться в процесс и сделать как мне это кажется правильным. С cpufreqd вроде получилось.
 

Оффлайн alsoijw

Re: cpufreqd.conf вольная шпаргалка
« Ответ #10 : 06 Декабря 2016, 20:02:54 »
Можно в /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq явно прописать.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?
 

Оффлайн Vlad

Re: cpufreqd.conf вольная шпаргалка
« Ответ #11 : 06 Декабря 2016, 21:05:08 »
Можно в /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq явно прописать.

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

Оффлайн alsoijw

Re: cpufreqd.conf вольная шпаргалка
« Ответ #12 : 06 Декабря 2016, 23:35:05 »
Vlad, есть несколько режимов разгона. http://help.ubuntu.ru/wiki/%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%8D%D0%BD%D0%B5%D1%80%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F?s[]=cpufreq#%D1%8D%D0%BD%D0%B5%D1%80%D0%B3%D0%BE%D1%81%D0%B1%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%B0
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?
 

Оффлайн Vlad

Re: cpufreqd.conf вольная шпаргалка
« Ответ #13 : 07 Декабря 2016, 20:51:41 »
Вот я и пишу что у меня только два режима. По описанию из статьи меня бы устроил conservative. Просто выполнить echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor не получается, "недопустимый аргумент". К тому же я всё равно не знаю как работает этот conservative? Можно ли повлиять на результаты его работы? С другой стороны если бы можно было, то уже без разницы что бы это было conservative или ondemand ведь можно было бы любой из них "подкрутить". Но видимо всё таки нельзя.
 

Оффлайн mrgoodvin

/
« Ответ #14 : 15 Декабря 2016, 02:41:18 »
Vlad, в принципе cpufreq-info (cpufrequtils) должен показать что можно. а что нельзя. Вот еще можно почитать - https://wiki.archlinux.org/index.php/CPU_frequency_scaling_ (Русский). Тоже выбор регуляторов не велик был, но что делал и как устанавливал уже и не вспомню. Но grub для этих целей не правил. Laptop mode tools установлен и настроен. 4 скрипта, как пример для conservative .
#!/bin/sh
cpufreq-set -g conservative -c 1
cpufreq-set -g conservative -c 0
Прописал выбор 4-мя командами из ДЕ,  для conservative - gksudo /home/_user/_pathtogovernors/conservative.sh. При смене ввожу пароль для user. Можно в sudors настроить и без ввода пароля, но меня устраивает. В некоторых ДЕ есть аплеты для переключения, для xfce пока нету. Через cpufreqd.conf не пробовал настраивать, но судя из проделанной работы Utility, cpufreqd в сравнении более гибок в настройке.
 

Теги: