LINUX.ORG.RU

PulseAudio и питание

 , , ,


1

2

Очень сильно греется в простое ноутбук, решил всё таки попробовать разобраться в проблеме. В powertop получаю это.

Summary: 182.3 wakeups/second,  0.0 GPU ops/seconds, 0.0 VFS ops/sec and 13.9% CPU use

Power est.              Usage       Events/s    Category       Description
  500 mW      4.3 µs/s      0.05        Process        [PID 14909] /usr/bin/pulseaudio --daemonize=no
  284 mW    526.2 µs/s      71.6        Interrupt      [1] timer(softirq)
  121 mW     77.4 ms/s      0.15        Timer          tcp_keepalive_timer
 58.1 mW     32.2 ms/s       2.0        kWork          radeon_flip_work_func

На первом месте Pulse с большим отрывом, хотя музыка не играет, и программы использующие звук не запущены, если не считать Chromium.

Можно ли как-то оптимизировать Pulse или вовсе её удалить, чтобы не получать 70 градусов с ничего? Про пыль и термопасту лучше не писать, так как он недавно посещал сервис из-за вздутия конденсаторов.

Эти оценки потребления показывают что угодно, только не энергопотребление. Попробуй убить процесс pulseaudio, и увидишь, что температуры всё те же, как и энергопотребление.

Возможно, тебе поможет

echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Попробуй убить процесс pulseaudio, и увидишь, что температуры всё те же, как и энергопотребление.

Его не убъешь, сразу же запускается. Можно ли его удалить, и использовать ALSA напрямую? Я без понятия как Pulse работает, пока не было проблем даже не обращал внимания.

Artamudo ★★ ()
Последнее исправление: Artamudo (всего исправлений: 1)
Ответ на: комментарий от Artamudo

Permission denied

Учётная запись, под которой ты работаешь, не имеет прав на запись в файл. Что понятно, ведь под sudo ты запускаешь только echo, а не всю команду целиком.

i-rinat ★★★★★ ()
Ответ на: комментарий от Artamudo

Его не убъешь, сразу же запускается

Переименуй на время бинарник, тогда не будет запускаться.

Можно ли его удалить, и использовать ALSA напрямую?

Я разрешаю.

Только как уже выше писал, это не даст заметного эффекта.

i-rinat ★★★★★ ()
Ответ на: комментарий от curufinwe

Ну если действительно в простое, то нормально. 13% это другое.

Кстати может мне показалось, но я вчера тыкал powertop --auto-tune и tlp, из-за чего температура упала до 56-ти почти сразу, даже под нагрузкой. Поэтому я подумал на энергопотребление. Сейчас такой хак почему-то не помогает.

Вот сейчас нагрузка скачет на 1-2%, температура 71°. Это не из-за процессов, я за этим слежу.

Artamudo ★★ ()
Последнее исправление: Artamudo (всего исправлений: 1)
Ответ на: комментарий от Artamudo

И ни капельки не помогло убийство пульсы, да?

В общем, читай, как там у тебя на платформе обустроено энергосбережение, какие крутилки есть, какие показатели можно снимать. У Intel это C-states, P-states и PC-states. Думаю, общая идея всё равно будет та же: процессор и его обвязка должны уходить в глубокий сон, и нужно убрать все причины, по которым эта связка не уходит в сон.

i-rinat ★★★★★ ()
Ответ на: комментарий от Artamudo

С-states — процессорные ядра отключают функциональные блоки, которые не нужны, в том числе кеши. PC-states — процессор целиком. На моём ноуте, если просто форма редактирования сообщения на ЛОРе открыта, 95% процентов времени ядра находятся в C10, самом глубоком сне. В C0 ядра проводят где-то 0,5% времени. Остальное время — в промежуточных состояниях. Процессор целиком спит в разных состояниях от PC2 до PC8 примерно 85% времени. Это нормальное поведение. Между нажатиями на клавиши проходит очень много времени, что даёт процессору много времени на отдых и остывание.

Не знаю, как там у AMD, но наверняка очень похоже. Если что-то не даёт процессору отправить в сон функциональные блоки, они заметно греются. Когда очередное обновление ядра отломало у меня PC-states, энергопотребление выросло где-то на полтора ватта, а температура в простое с примерно 40°C до примерно 55°C.

i-rinat ★★★★★ ()

Про пыль и термопасту лучше не писать, так как он недавно посещал сервис из-за вздутия конденсаторов.

Сервис посещал из-за конденсаторов а не пыли и термопасты, ставлю на это.

aplay ★★★★★ ()
Ответ на: комментарий от unanimous

Кстати может мне показалось, но я вчера тыкал powertop --auto-tune и tlp, из-за чего температура упала до 56-ти почти сразу, даже под нагрузкой. Поэтому я подумал на энергопотребление. Сейчас такой хак почему-то не помогает.

Лучше перед тем как писать что-то – хотя бы проскользить по предыдущим сообщениям.

Artamudo ★★ ()
Ответ на: комментарий от i-rinat

Я так понимаю для AMD есть аналог Cool'n'Quite, но он уже давно в ядре по дефолту, и настроек для него я не нашёл.

Как доберусь до него то попробую настройки из ubuntuwiki

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

conservative ondemand userspace powersave performance
Artamudo ★★ ()
Ответ на: комментарий от i-rinat

На моём ноуте, если просто форма редактирования сообщения на ЛОРе открыта, 95% процентов времени ядра находятся в C10, самом глубоком сне.

95% процентов времени ядра находятся в C10

Ядра или весь процессор? Батарейка или розетка? Что за ноут, что за дистрибутив/ядро/DE, что настраивал относительно дефолта? Можно подробности?

intelfx ★★★★★ ()
Ответ на: комментарий от i-rinat

Переименуй на время бинарник, тогда не будет запускаться.

echo autospawn = no > ~/.config/pulse/client.conf

ТС, в man 5 pulse-daemon.conf есть какая-то инфа муть про exit-idle-time, посмотри.

anonymous ()
Ответ на: комментарий от anonymous

Спасибо. Мне не особо нужно выключать на постоянной основе. Вместо этого иногда бывает нужно потестить что-нибудь с и без PulseAudio. И чтобы включить-выключить, проще в скриптах переименовывать бинарник. С правкой конфига нужно следить, чтобы выстрел в ногу не попал.

i-rinat ★★★★★ ()

текущие частоты cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

гувернер(ы) cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

доступные гувернеры уже знаешь

установить гувернеры для всех ядер echo гувернер | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

anonymous ()
Ответ на: комментарий от intelfx

Ядра или весь процессор?

Ядра, C10.

Батарейка или розетка?

Розетка. Не заметил изменений при работе от аккумулятора.

Что за ноут, что за дистрибутив/ядро/DE

Dell Latitude E5570 (Skylake, i7-6820hq), Debian testing, 5.7~rc5-1~exp1, XFCE 4.

что настраивал относительно дефолта?

Напряжения снижены, --core -150 --cache -150 --analogio 0 --uncore -30 --gpu -30.
В /etc/rc.local есть вот это:

ethtool -s enp0s31f6 wol d || true
for tgt in /sys/class/scsi_host/host*/link_power_management_policy; do
    echo med_power_with_dipm > $tgt
done
for tgt in /sys/bus/pci/devices/*/power/control; do
    echo auto > $tgt || true
done

SATA накопителя уже нет, стоит NVMe. Энергосбережение PCI-e на этом ноуте не настраивается, но когда-то по выводу lspci я как-то понял, что оно включено.

С текущими параметрами turbostat --Summary выдаёт:

Avg_MHz	Busy%	Bzy_MHz	TSC_MHz	IRQ	SMI	POLL	C1	C1E	C3	C6	C7s	C8	C9	C10	POLL%	C1%	C1E%	C3%	C6%	C7s%	C8%	C9%	C10%	CPU%c1	CPU%c3	CPU%c6	CPU%c7	CoreTmp	PkgTmp	GFX%rc6	GFXMHz	Totl%C0	Any%C0	GFX%C0	CPUGFX%	Pkg%pc2	Pkg%pc3	Pkg%pc6	Pkg%pc7	Pkg%pc8	Pkg%pc9	Pk%pc10	PkgWatt	CorWatt	GFXWatt	RAMWatt	PKG_%	RAM_%
7	0.61	1088	2712	1820	0	2	26	335	54	194	9	593	19	1143	0.00	0.04	0.66	0.05	0.30	0.03	3.55	0.17	94.54	2.48	0.09	0.49	96.33	54	54	99.11	350	5.44	4.43	0.81	0.23	8.94	7.89	50.82	0.05	22.13	0.00	0.00	0.54	0.07	0.01	1.06	0.00	0.00
104	3.64	2850	2712	2844	24	7	84	434	87	250	13	944	14	1262	0.00	0.14	0.93	0.07	0.33	0.02	5.65	0.08	89.10	6.05	0.15	0.47	89.68	54	54	99.19	350	29.36	27.41	0.70	0.26	6.66	6.21	36.82	0.02	16.31	0.00	0.00	2.23	1.55	0.01	1.07	0.00	0.00
26	1.47	1781	2712	6470	0	279	2939	1191	111	340	72	1088	49	3617	0.01	0.77	0.50	0.06	0.40	0.04	6.56	0.44	89.74	5.13	0.13	0.65	92.62	53	53	99.32	350	12.37	10.70	0.61	0.23	8.39	2.91	48.03	0.02	20.13	0.00	0.00	0.93	0.37	0.01	1.08	0.00	0.00
28	1.62	1733	2712	2868	16	6	1016	461	107	406	17	1181	27	1372	0.00	0.28	0.70	0.09	0.54	0.06	6.99	0.19	89.50	4.07	0.17	0.86	93.28	52	53	99.32	1033	13.56	11.36	0.62	0.20	8.67	6.47	45.15	0.02	22.31	0.00	0.00	0.87	0.32	0.01	1.08	0.00	0.00
6	0.50	1134	2712	1474	8	1	12	353	26	148	1	411	6	1002	0.00	0.01	1.25	0.02	0.24	0.00	2.61	0.05	95.31	3.41	0.03	0.39	95.67	52	53	99.24	800	4.47	3.65	0.71	0.21	8.05	2.72	54.40	0.00	21.68	0.00	0.00	0.48	0.07	0.01	1.06	0.00	0.00
7	0.61	1128	2712	2107	16	4	29	332	47	195	1	663	6	1024	0.00	0.04	1.03	0.04	0.30	0.00	4.11	0.13	93.70	2.98	0.08	0.51	95.82	51	52	99.29	350	5.30	4.11	0.65	0.19	8.53	3.72	52.62	0.02	22.68	0.00	0.00	0.50	0.07	0.01	1.06	0.00	0.00
6	0.56	1074	2712	1555	0	0	30	287	52	177	4	569	14	1040	0.00	0.04	0.49	0.04	0.26	0.01	3.37	0.18	95.03	2.01	0.07	0.46	96.90	51	53	99.36	350	5.06	4.05	0.59	0.17	8.78	3.15	55.26	0.00	24.10	0.00	0.00	0.44	0.06	0.01	1.06	0.00	0.00
8	0.68	1143	2712	2243	24	9	38	294	67	185	2	746	48	1128	0.00	0.08	0.51	0.03	0.27	0.01	4.60	0.21	93.59	2.36	0.06	0.47	96.43	51	52	99.26	350	5.83	4.50	0.67	0.19	8.72	3.17	55.76	0.00	22.68	0.00	0.00	0.46	0.07	0.01	1.06	0.00	0.00

Если из rc.local строчки убрать, будет так:

Avg_MHz	Busy%	Bzy_MHz	TSC_MHz	IRQ	SMI	POLL	C1	C1E	C3	C6	C7s	C8	C9	C10	POLL%	C1%	C1E%	C3%	C6%	C7s%	C8%	C9%	C10%	CPU%c1	CPU%c3	CPU%c6	CPU%c7	CoreTmp	PkgTmp	GFX%rc6	GFXMHz	Totl%C0	Any%C0	GFX%C0	CPUGFX%	Pkg%pc2	Pkg%pc3	Pkg%pc6	Pkg%pc7	Pkg%pc8	Pkg%pc9	Pk%pc10	PkgWatt	CorWatt	GFXWatt	RAMWatt	PKG_%	RAM_%
8	0.84	932	2711	2252	16	1	20	332	64	304	5	786	4	1034	0.00	0.02	0.75	0.04	0.44	0.04	4.54	0.08	93.24	2.60	0.06	0.68	95.81	51	52	98.52	350	7.15	5.48	1.34	0.44	89.90	0.00	0.00	0.00	0.00	0.00	0.00	3.00	0.08	0.02	1.06	0.00	0.00
6	0.72	813	2713	1485	8	1	21	291	33	180	0	503	7	1007	0.00	0.03	0.51	0.01	0.28	0.00	2.95	0.11	95.43	1.88	0.02	0.43	96.95	51	51	99.08	350	6.23	5.02	0.92	0.31	91.40	0.00	0.00	0.00	0.00	0.00	0.00	2.96	0.06	0.01	1.05	0.00	0.00
9	0.95	987	2711	2641	16	12	66	426	60	303	7	817	1	1175	0.00	0.09	0.57	0.03	0.50	0.01	4.90	0.02	92.93	2.39	0.08	0.79	95.80	50	52	98.83	350	7.50	5.54	1.07	0.34	90.06	0.00	0.00	0.00	0.00	0.00	0.00	3.02	0.09	0.01	1.06	0.00	0.00
18	1.91	944	2712	7416	0	108	1121	3443	342	1658	8	1958	14	1535	0.00	0.40	1.79	0.24	2.62	0.00	8.53	0.12	84.42	6.24	0.33	3.36	88.16	51	52	98.96	767	16.13	11.40	1.01	0.36	80.91	0.00	0.00	0.00	0.00	0.00	0.00	3.08	0.15	0.02	1.07	0.00	0.00
8	0.77	982	2712	2260	24	1	21	331	44	204	0	774	7	1046	0.00	0.04	0.66	0.03	0.32	0.00	4.65	0.08	93.48	2.44	0.06	0.51	96.22	50	51	99.12	350	6.54	4.90	1.01	0.39	90.34	0.00	0.00	0.00	0.00	0.00	0.00	2.97	0.07	0.02	1.05	0.00	0.00
6	0.69	802	2712	1550	0	0	18	287	42	157	1	523	5	1062	0.00	0.02	0.46	0.03	0.25	0.00	3.18	0.10	95.30	1.92	0.05	0.40	96.95	50	51	99.22	350	6.13	4.97	1.02	0.39	91.97	0.00	0.00	0.00	0.00	0.00	0.00	2.97	0.06	0.01	1.05	0.00	0.00
7	0.79	928	2712	2232	16	0	40	321	47	200	0	714	3	1077	0.00	0.07	0.53	0.02	0.31	0.00	4.59	0.02	93.69	2.09	0.03	0.46	96.64	50	52	99.20	350	6.61	5.04	1.14	0.39	91.32	0.00	0.00	0.00	0.00	0.00	0.00	2.97	0.07	0.01	1.05	0.00	0.00
6	0.77	822	2712	2256	8	0	24	529	63	332	1	595	1	1205	0.00	0.04	0.69	0.04	0.56	0.01	3.31	0.02	94.58	2.40	0.07	0.70	96.06	50	51	99.52	350	6.45	5.08	0.90	0.27	89.69	0.00	0.00	0.00	0.00	0.00	0.00	2.97	0.06	0.01	1.05	0.00	0.00

Ситуация с ядрами не особо меняется, но вся сборка ест заметно больше (PkgWatt).

TurboBoost я для пробы включил обратно, кстати. На свежих ядрах он уже не такой агрессивный, и выше номинальной частоты почти не прыгает. Так что и толку от него стало меньше.

i-rinat ★★★★★ ()
Ответ на: комментарий от anonymous

и ещё есть такая штука

/sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference

если её сменить с balance_performance на performance, частота начинает агрессивно задираться при малейшей нагрузке

(возможные а не текущие варианты значений для неё есть в /sys/devices/system/cpu/cpufreq/policy*/energy_performance_available_preferences)

anonymous ()
Ответ на: комментарий от i-rinat

хотя это тоже херня

у процессора есть макс температура tjmax, после которой он начнёт сбрасывать частоту. но на новых процах она дебильно высокая - 100°c

однако в венде через throttlestop можно задать PROCHOT offset для неё, и проц будет постепенно понемногу сбрасывать частоту, если эта температура достигнута

таким образом производительность пострадает ещё меньше

в линуксе есть параметр ядра coretemp.tjmax=, но я не пробовал, делает ли он то же самое

anonymous ()