gemlog/public/uk/power-optimization-on-linux.gmi
2026-02-15 11:08:17 +02:00

130 lines
No EOL
8.8 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Оптимізація енергоспоживання в GNOME / Linux
В умовах перебоїв з електропостачанням, дібрався й до оптимізації середовища GNOME бо останнім часом запустити десктоп в мене можливості немає взагалі - сиджу більшість часу на батареї з нетбуком.
Нижче деякі нотатки, щоб потім не забути повернути назад. Наскільки вони ефективні на практиці - поки не знаю, але думаю в них є сенс, щоб спробувати.
## Режим споживання
Найпомітніша комплексна опція, доступна з правого кута меню:
> Power Mode : Power Saver
## Зменшення частоти оновлення екрану
> Settings > Display > Refresh Rate : 40.01 Hz
=> https://linux.org.ua/index.php?topic=12341.0 Моє питання щодо доречності на LOU
## Вимкнення зайвих функцій пошуку
Це стосується як основного меню (пошук по файлам, закладкам, програмним інтеграціям) так і самих програм (наприклад в браузері Firefox можна вимкнути чимало функціональності з авто-доповнення)
* треба розкрити тему прикладами за нагоди, бо я ще вимикав фонову службу взагалі, але забув яку саме
## Вимкнення анімацій
Тут я поставив dconf-editor, де вимкнув анімації вікон:
> /org/gnome/desktop/interface : enable-animations
## Оптимізація бекенду GTK
Поки не дібрався, але в мене є поки теоретичні наміри знизити частоту оновлення фреймів середовища GTK, а звідти - сумарне споживання енергії програмами на його основі.
Іншими словами, програми запускають петлі прослуховування подій (англ. "event loops"), коли я тільки починав розробку то наплодив чимало таких споживачів процесорного часу, замість використання вказівників (англ. "pointers"). Думаю не один такий, і це в мене ще був відносно потужний комп. Сучасні "вайб-кодери" на геймерських коритах взагалі не чули про заощадження циклів запису SSD, оптимізацію пам'яті та процесорного часу.
Наскільки це можливо зробити на бекенді GTK через якийсь dconf і без використання API програм - ще не знаю, але спробую в цій темі розібратись. Думаю, що глобальне середовище має містити такі конфіги, TODO.
## Інше
Не пов'язані напряму з GNOME, але релевантні в контексті енергозаощадження, поради.
### zRAM
На лібері вплила згадка про zram, який по суті стискає дані при розміщенні їх на диску. Звісно, це корисно, але не тоді коли я сиджу на батареї та "рахую кількість кадрів"
``` bash
$ zramctl
/dev/zram0 lzo-rle 7,2G 885,2M 262,4M 270,4M [SWAP]
```
* 885,2M - реальний об'єм
* 262,4M - об'єм після стиснення
* 270,4M - реальна кількість фізичної оперативної пам'яті (включаючи метадані)
Видалив так:
``` bash
sudo dnf remove search zram-generator-defaults
reboot
```
Перевірити, чи стиснення дійсно деактивоване можна командою:
``` bash
$ cat /sys/module/zswap/parameters/enabled
N
```
Після цього додав класичний swap file. Є два способи, нормальний:
``` bash
sudo fallocate -l 10G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
free -h
```
і "федорівський" (BTRFS/CoW)
``` bash
sudo truncate -s 0 /swapfile
sudo chattr +C /swapfile
sudo btrfs property set /swapfile compression none
sudo dd if=/dev/zero of=/swapfile bs=1M count=10240 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
free -h
```
* зміна властивостей компресії може не підтримуватись
Щоб розділ підключався після перезавантаження системи:
``` /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/swapfile none swap sw,nofail 0 0
```
* nofail я останнім часом додаю на всяк випадок, бо в мене колись були трабли під час завантаження системи, якщо диск раптом вийде з ладу (може для swap це не актуально, не перевіряв)
Звісно, у випадку з класичним файлом підкачки, збільшиться кількість операцій запису, що важливо враховувати особливо при використанні SSD. Утім, своє завдання в контексті енергозаощадження цей спосіб виконує: з переходом з "офроад" на "асфальт" можна буде повернути попередні налаштування.
### Let's decrypt
Впровадження TLS на публічні дані викликає в мене дедалі більше роздратування. Просто звертаю увагу на опціональне використання HTTP замість HTTPS там, де це можливо: радіо, відео стріми та інше.
Частково освітлював цю тему в контексті примусового шифрування Yggdrasil, через що я більше не користуюсь локально встановленим роутером, пересилаючи запити 0200::/7 на проксі-сервер:
=> thoughts-on-tls-on-yggdrasil-and-mycelium-networks.gmi Думки стосовно TLS в мережах Yggdrasil та Mycelium
Схожу параноїдальну болячку має й протокол Gemini, через що я знову задумуюсь про використання форку Geminict або повернення до протоколу Nex, хоча він - не зручний для інтерактивних ресурсів і ще більш далекий від заміни собою Веб:
=> nex-lightweight-gemini-alternative.gmi Протокол NEX - легка альтернатива Gemini
### Розподілені мережі
Я користуюсь двома оверлейними мережами: Yggdrasil та Mycelium, які через свою децентралізовану природу - не є енерго-ефективними за визначенням, але й відмовитись я від них теж не можу. Зате, можу оптимізувати: днями наткнувся на цікаву нотатку howto.ygg стосовно вимкнення інтерфейсу Multicast для клієнтських роутерів, що підключаються до вузлів напряму:
=> enhancing-privacy-in-linux-apps.gmi Підвищення рівня приватності в застосунках Linux
* як бачимо, життя "на широку ногу" - не тільки потенційна дірка в безпеці, але й марнотратство енергії
### Корисні посилання
=> https://www.reddit.com/r/linux/comments/a4o03z/get_the_best_out_of_you_battery_on_linux/?tl=uk Вичави максимум з батареї на Linux (машинний переклад)
## Дивіться також
=> diy-online-router-ups-based-on-interactive-pc-ups.gmi Саморобний online-UPS для роутера на базі 12В безперебійника для ПК
=> diy-router-ups-based-on-usb-power-bank.gmi Саморобний UPS для роутера на базі пауер-банку USB