Linux на ноутбуках/десктопах
Энергосбережение
Недавно пробовал ноут на AMD Ryzen 7 5800U, на нем и производительность и автономность из коробки (с amd_pstate=active) была превосходная.
А на моем дефолтном ноуте Dell Latitude 7490 на i7-8650U с этим проблемы - надо найти подходящий баланс между автономностью и быстродействием.
Тулзы
TLP
Я сейчас живу с таким конфигом:
CPU_DRIVER_OPMODE_ON_AC=active
CPU_SCALING_GOVERNOR_ON_AC=powersave
CPU_MIN_PERF_ON_AC=0
CPU_MAX_PERF_ON_AC=100
CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
CPU_ENERGY_PERF_POLICY_ON_BAT=balance_power
CPU_MIN_PERF_ON_BAT=0
CPU_MAX_PERF_ON_BAT=100
CPU_DRIVER_OPMODE_ON_BAT=passive
CPU_SCALING_GOVERNOR_ON_BAT=conservative
#CPU_SCALING_GOVERNOR_ON_BAT=schedutil
CPU_SCALING_MIN_FREQ_ON_BAT=400000
CPU_SCALING_MAX_FREQ_ON_BAT=2500000
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=1
CPU_HWP_DYN_BOOST_ON_AC=1
CPU_HWP_DYN_BOOST_ON_BAT=1
NMI_WATCHDOG=0
# Можно поиграться, но я не пробовал
#INTEL_GPU_MIN_FREQ_ON_AC=0
#INTEL_GPU_MIN_FREQ_ON_BAT=0
#INTEL_GPU_MAX_FREQ_ON_AC=0
#INTEL_GPU_MAX_FREQ_ON_BAT=0
#INTEL_GPU_BOOST_FREQ_ON_AC=0
#INTEL_GPU_BOOST_FREQ_ON_BAT=0
PCIE_ASPM_ON_AC=default
PCIE_ASPM_ON_BAT=powersupersave
RUNTIME_PM_ON_AC=on
RUNTIME_PM_ON_BAT=auto
# костыль чтобы звук по bluetooth не рвался при активном трафике по wifi, но это не помогает и кажется надо менять модуль
USB_DENYLIST="1d6b:0002"
USB_EXCLUDE_BTUSB=1
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=off
Поясняю в чем фишка: intel_pstate немного неадекватно рулит частотой, и ограничить частоту просто так нельзя, можно только в абстрактных процентах. И турбобуст при этом тоже нужен, т.к. чатоты 1.9 ГГц нехватает.
Passive режим pstate в связке с conservative говернором позволяет балансировать между низким энергопотреблением (ибо conservative) и достаточным для жизни турбобустом в 2.5 ГГц (для чего в ноутбук засунули турбобуст до 4.2 ГГц мне искренне непонятно). Еще можно смело снизить порог снижения чатоты - conservative говернор будет еще шустрее снижать частоту при снижении нагрузки на систему.
# агрессивнее снижать частоты
echo 5 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/down_threshold
# не так часто запускать говернор, мне это помогло убрать подскоки частоты с 800 до 1200 в ютубе
echo 10000 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/sampling_rate
# В итоге промежуточно как-то так
echo 30 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/down_threshold
echo 1 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/freq_step
echo 2 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/sampling_down_factor
echo 80 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/up_threshold
echo 25000 | sudo tee /sys/devices/system/cpu/cpufreq/conservative/sampling_rate
При этом повышается частота достаточно быстро, в околобраузерном использовании не заметно просадок производительности.
TuneD - аналог tlp от redhat
Немного упрощенный аналог TLP от RedHat.
Там нет некоторых новых параметров, которые есть в TLP, например управление порогами зарядки батареи, управление профилем платформы, управление частотой видеоядра, но зато есть, например, настройка C-state'ов, можно гибко задать пороги нагрузки и задержки
Но главный плюс по сравнению с TLP - профили. Если у TLP есть 2 режима - на батарее и на зарядке, то у TuneD можно рисовать режимы на любой удобный случай. Поэтому для TuneD есть пакет tuned-ppd, который позволяет управлять через dbus профилями (то чем занимается из коробки powerprofilesdaemon). И еще tuned умеет запускать кастомные скрипты в зависимости от профиля.
Есть gui для создания/редактирования/переключения профилей.
Power Profiles Daemon
Демон, который идет из коробки с популярными дистрами (федора, сузя, всякие debian-based) для управления энергопотреблением через DE (KDE, Gnome).
Абсолютно бесполезный демон, т.к. он не кастомизируется и какие конкретно параметры он изменяет - непонятно. Никогда его не использовал.
FAQ
Аппаратный декод видео
Могу лишь посоветовать почитать статью https://wiki.archlinux.org/title/Hardware_video_acceleration и смотреть наличие декода через nvtop или intel_gpu_top.
Жоский тюнинг проца
Вот тут можно настроить длительный буст и короткий буст
/sys/class/powercap/intel-rapl:0
in /sys/class/powercap/intel-rapl:0 λ cat constraint_0_name
long_term
in /sys/class/powercap/intel-rapl:0 λ cat constraint_1_name
short_term
# По дефолту для ноутбука тут какие-то сильно завышенные лимиты (i7-8650u)
in /sys/class/powercap/intel-rapl:0 λ cat constraint_0_power_limit_uw
22000000
in /sys/class/powercap/intel-rapl:0 λ cat constraint_1_power_limit_uw
44000000
# Говорят так будет хорошо на батарее
in /sys/class/powercap/intel-rapl:0 λ echo 10000000 | sudo tee constraint_0_power_limit_uw
10000000
in /sys/class/powercap/intel-rapl:0 λ echo 12000000 | sudo tee constraint_1_power_limit_uw
12000000
Также смотри на intel-undervolt, там можно урезать TDP, вольтаж и детально играться с потреблением проца.
Мониторить потребление можно так
sudo turbostat --Summary --interval 5 --show Avg_MHz,Busy%,Bzy_MHz,IRQ,PkgTmp,PkgWatt,GFXWatt
Проц
Если у тебя интел:
Есть 3 способа рулить частотой: intel_pstate (active), intel_pstate (passive), acpi-cpufreq
Ядра
На арче Я пробовал 3 разных ядра: linux, linux-zen, linux-clear. Они все показали разные результаты по автономности и неожиданно в пользу ванильного ядра. linux - не шибко быстрое, но автономное, linux-zen - бегает шустрее, но жрет больше батареи, linux-clear - ваще быстрое, но жрет столько же сколько linux-zen. Разница не сильно критична, но на аккумуляторе в 42 ватта это превращается из 2-3 часов автономности в 3-4.
Можно еще взять параметры ядра у linux-clear (наверное решает все таки mitigations=off)
Утилиты
[AUR] energygraph
https://github.com/stolk/energygraph
Консольная утилита которая строит график потребления системы.
[Repo] turbostat
Утилита которая графики не строит, но выводит много полезной информации, в т.ч. потребление каждого компонента системы.
Пример:
sudo turbostat \
--header_iterations 50 \
--Summary \
--interval 2 \
--show Avg_MHz,Busy%,Bzy_MHz,IRQ,PkgTmp,PkgWatt,CorWatt,GFXWatt,RAMWatt,SysWatt,UncMHz,POLL%,C0%,C1%,C1E%,C3%,C6%,C7s%,C8%,C9%,C10%
[AUR] powerstat - еще один аналог turbostat
Утилита собирает из RAPL инфу о потреблении энергии системой. Показывает красивую статистику
Просто команды:
cat /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
power
power
power
power
power
power
power
power
cat /sys/devices/system/cpu/cpu*/power/energy_perf_bias # 0 - производительный режим, 15 - максимальное энергосбережение
15
15
15
15
15
15
15
15
Папки в твоем хомяке
Хочешь сбросить что-то в своей системе? Смотри сюда
Пользовательские приложения и mime привязки: $HOME/.local/share/applications
Ищу себе ноутбук
Заметка больше для себя.
Ищу ноутбук, который:
- Будет надежным как бизнесовый (я не хочу переживать что ноут развалится пополам, если я его уроню или возьму за крышку)
- Будет иметь хороший модуль связи, который не будет подыхать при скачивании торрентов или подключении 3(+) устройств по блютузу
- Будет иметь полную (исключение отпечаток пальца) совместимость с линуксами (желательно без костылей)
- Будет достаточно быстрым (мне будет достаточно производительности уровня i7-8650U или R7-5800U)
- Будет достаточно автономным (мне было достаточно автономности R7-5800U+52Wh АКБ, т.е. часов 5-7, видосов/интернета/консоли, лучше больше)
- Будет иметь нормальную клавиатуру с жизненно необходимыми клавишами PgUp/Down, Home/End, PrintScreen, Insert.
- Будет иметь нормальные динамики, желательно хорошие, как минимум без перекосов по частотам
- Либо иметь трекпоинт, либо достаточно большой тачпад (Dell Latitude 7490 без трекпоинта бы уже не подошел)
- Будет иметь достаточно портов (HDMI, USB-C, USB-A, гарниты, желательно еще картридер и Ethernet)
- Будет иметь возможность кастомизации: У меня не должно быть проблем, если я захочу поставить больше ОЗУ или заменить SSD
- Было бы замечательно, если бы он имел индикацию зарядки и включения на корпусе (я не хочу гадать, ушел ли он в сон и тем более зарядился ли ноутбук во сне)
Вендор | Модель |
Проц |
Батарея в ватт-часах (минуты в интернете согласно notebookcheck) |
Экран (диаг) |
Экран |
ОЗУ/Диск/Кастомизация |
GPU |
Трекпоинт | Цена |
Dell |
Latitude 7490 |
i7-8650U |
60 Wh (561) |
14 |
FHD IPS |
32/1024/+ |
iGPU |
+ |
32k |
Framework |
16 |
R7-7840HS |
85 Wh |
16 |
64/2048/+ |
iGPU/dGPU |
- |
Много |
|
System76 |
Pangolin | R7-7840U | 70 Wh (10h) |
16.1 |
FHD IPS |
32/16T/+ |
iGPU |
- |
1.3k$ |
System76 | Lemur Pro | i5-1335U | 73 Wh (14h) |
14.1 |
FHD IPS |
56/8T/+ |
iGPU | - |
1.4k$ |
HP |
ProBook 455 G10 |
R5-7530U | 51 Wh |
15.6 |
FHD IPS |
32/2048/+ |
iGPU |
- |
84к |
HP |
ProBook 455 G8 | R7-5800U |
45 Wh | 15.6 |
FHD IPS |
32/512/+ |
iGPU |
- |
64к |
Thinkpad |
T16 Gen2 |
i7-1355U | 52 Wh (690) |
16 |
FHD IPS |
16/512/+ |
iGPU |
+ |
|
Thinkpad |
T16 Gen1 |
R7P-6850U |
52.5 Wh (635) |
16 |
FHD IPS |
48/512/+ |
dGPU Geforce MX550 |
+ |
60-70k |
Thinkpad | T16 Gen1 | i5-1240P |
86 Wh (846) |
16 | FHD IPS | 48/512/+ |
iGPU |
+ |
|
HP |
EliteBook 865 G9 |
R5-6600U |
51 Wh (899) |