Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Патчи, твики => Компиляция ядра Linux => Программирование и компиляция => pf-kernel - desktop-oriented Linux kernel fork. => Тема начата: krasnyh от 04 Январь 2022, 16:31:43

Название: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 04 Январь 2022, 16:31:43
https://www.kernel.org/doc/html/latest/admin-guide/mm/damon/reclaim.html

DAMON (https://www.opennet.ru/opennews/art.shtml?num=56478)
Цитата
для упреждающего вытеснения невостребованных областей памяти, улучшение обработки перегрузок при большом объёме операций записи
Проверить включение : pgrep -a kdamond
Вкл  : sudoi echo Y >/sys/module/damon_reclaim/parameters/enabled
Выкл: sudoi echo N >/sys/module/damon_reclaim/parameters/enabled
Увеличения ресурсоемкости не отметил , т.е. выкл смысла нет. По умолчанию вкл
Скомпилил
3. Добавлен DAMON-based Proactive Reclamation (https://www.kernel.org/doc/html/latest/admin-guide/mm/damon/reclaim.html)


У меня есть, а в новых ядрах?
Код
live@roll2110 ~ % uname -r
5.15.0-pf4
live@roll2110 ~ % zgrep 'CONFIG_DAMON_RECLAIM' /proc/config.gz
CONFIG_DAMON_RECLAIM=y
Цитата
Оценка
==========

Короче говоря, DAMON_RECLAIM в ядре Linux v5.13 с устройством подкачки ZRAM и
временной квотой 50 мс / с обеспечивает экономию памяти 40,34% при накладных расходах всего 3,38%.
https://lkml.org/lkml/2021/7/20/429

Пример настроек (https://www.kernel.org/doc/html/latest/admin-guide/mm/damon/reclaim.html#example)
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 04 Январь 2022, 17:55:17
в новых ядрах?
есть (https://forum.puppyrus.org/index.php?topic=23523.msg181750#msg181750)
DAMON (https://www.phoronix.com/scan.php?page=news_item&px=DAMON-For-Linux-5.15)-based reclaim has been introduced (фреймворк, который лучше управляет оперативной памятью и снижает её потребление (https://skillbox.ru/media/code/vyshlo-yadro-linux-515-eto-ltsversiya-s-podderzhkoy-do-2023-goda/))

Оценка
Ваша? Или откуда? Получено с этими
Пример настроек
настройками ? zram=150% или % не влияет?
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 04 Январь 2022, 18:06:59
1. Это цитата, переведенная с en.
2. Пока сам не понимаю, что это и как. Включил в menu.lst damon_reclaim.enabled=1, с дефолтными настройками.
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 04 Январь 2022, 18:24:15
https://www.kernel.org/doc/html/latest/admin-guide/mm/damon/reclaim.html#example про zram  и 40,34 нет
Цитата
Ниже пример выполнения пример команд делают damon_reclaim, чтобы найти регионы памяти, которые не доступа к 30 секундам или более и страницам.Отрадителивание ограничено только до 1 Гибра в секунду, чтобы избежать DAMON_reclaim потребляет слишком много времени процессора для операции подкачки.Он также просит damon_reclaim ничего не делать, если бы ни свободный уровень памяти системы более 50%, но начните реальные работы, если оно становится ниже 40%.Если damon_reclaim не допускается прогрессом, и, следовательно, частота свободной памяти становится ниже 20%, она спрашивает Damon_reclaim больше ничего не делать, чтобы мы могли отбросить на основе страницы гранулярности страницы LRU.
https://br.atsit.in/ru/?p=106978 ? Тут не очень понятно 
Цитата
40,34. % экономии памяти
Какой?... Вряд ли всей или использованной...
Цитата
Это упреждающее восстановление страниц памяти может помочь при небольшой нехватке памяти
в menu.lst damon_reclaim.enabled=1
а это откуда?
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 04 Январь 2022, 18:26:00
про zram  и 40,34 нет
https://lkml.org/lkml/2021/7/20/429
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 04 Январь 2022, 18:46:00
в menu.lst damon_reclaim.enabled=1
а это откуда?
Удалось получить какае-то свои результаты?
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 04 Январь 2022, 18:49:13
а это откуда?
Из головы. )


Какие результаты, на что смотреть то? :)
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 04 Январь 2022, 19:00:50
Включил в menu.lst damon_reclaim.enabled=1, с дефолтными настройками.
Цитата
$ cd /sys/module/damon_reclaim/parameters/                       
$ sudo grep -R .                     
wmarks_high:500
monitor_region_end:3748200447
quota_ms:10
min_nr_regions:10
enabled:Y
aggr_interval:100000
monitor_region_start:1048576
sample_interval:5000
quota_reset_interval_ms:1000
wmarks_interval:5000000
quota_sz:134217728
min_age:120000000
wmarks_mid:400
kdamond_pid:105
max_nr_regions:1000
wmarks_low:200
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 04 Январь 2022, 20:00:20
https://sjp38.github.io/post/damon/
https://github.com/awslabs/damo
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 04 Январь 2022, 20:31:50
В принципе, эта цитата хороша как более-менее понятное описание (анонс) механизма. Можно ее в шапку темы перенести.
Цитата
Реализована подсистема DAMON (Data Access MONitor), позволяющая отслеживать активность, связанную с доступом к данным в оперативной памяти, в привязке к выбранному процессу, работающему в пространстве пользователя. Подсистема позволяет проанализировать к каким именно областям памяти обращался процесс за всё время своей работы, а какие области памяти остались невостребованными. Из особенностей DAMON отмечается низкая нагрузка на CPU, небольшое расходование памяти, высокая точность и предсказуемые постоянные накладные расходы, не зависящие от размера. Подсистема может использоваться как ядром для оптимизации управления памятью, так и утилитами (https://github.com/awslabs/damo) в пространстве пользователя для понимания того, что именно делает процесс и оптимизации использования памяти, например, высвобождения лишней памяти системе.
https://www.opennet.ru/opennews/art.shtml?num=56079
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 04 Январь 2022, 20:55:47
в menu.lst damon_reclaim.enabled=1,
Да. Так запускается (Y появляется)
https://sjp38.github.io/post/damon/
https://github.com/awslabs/damo
Как-то очень научно . Мало понял

А вот тут (https://www.kernel.org/doc/html/latest/admin-guide/mm/damon/reclaim.html#example)
Где требуется упреждающая рекурация?
kswapd (https://blog.bozdaganian.com/2019/12/21/linux-pagecache-and-kswapd/)
гостевой VMS...
Короче , как я понял тема больше про виртуалки
Вы поняли по другому?
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 04 Январь 2022, 20:59:01
эта цитата хороша как более-менее понятное описание
По сути общие слова
оптимизации использования памяти, например, высвобождения лишней памяти системе.
В итоге что можно посоветовать юзерам?
Включайте - что-то  с паиятью станет лучше  :D
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 04 Январь 2022, 22:03:57
Это всего лишь одно из многих улучшений работы с памятью в linux. Сейчас оно воспринимается как 'чудинка', а в будущем будет включено по умолчанию, имхо.
Включено наравне с:
- mgLRU (https://www.phoronix.com/scan.php?page=news_item&px=Multigen-LRU-v5), который все же допилят и включат в ядро. Сейчас же мы используем его альтернативу - le9.
- Folios (https://www.phoronix.com/scan.php?page=news_item&px=Memory-Folios-Linux-5.16-PR), который обещают уже с 5.16
...


p.s. Считается, что именно Windows впереди планеты всей по оптимизации работы с памятью. Но вот и линукс потихоньку вступает в борьбу.


UPD. Еще недавно это утверждение было истинным и мы могли обсуждать такое явление как thrashing (https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D1%83%D0%BA%D1%81%D0%BE%D0%B2%D0%BA%D0%B0_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)).
Цитата
В Windows 10 есть сжатие памяти, и в целом работа с памятью сделана значительно лучше, чем в Linux. Компьютерами с 1 GB RAM можно пользоваться с Windows 10, но не с Linux.
Лор (https://www.linux.org.ru/forum/general/16233491?cid=16234362)
Сейчас же, с le9, это уже не проблема и даже с 1G ram линукс чувствует себя уверенней.
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 05 Январь 2022, 09:21:30
Компьютерами с 1 GB RAM можно пользоваться с Windows 10, но не с Linux.
Ответил здесь (https://forum.puppyrus.org/index.php?topic=23696.new#new)
Это всего лишь одно из многих улучшений работы с памятью в linux. Сейчас оно воспринимается как 'чудинка', а в будущем будет включено по умолчанию, имхо.
К сожалению, как видно и из этой темы, нам раньше  "включено по умолчанию" в это лезть и не надо. Не тот уровень  :'(
Пока из новых фич как-то освоить и протестировать смогли только uksm и le9. И то от юзеров отзывов нет

В итоге по этой теме - добавляю в исо в конфиг с zram damon_reclaim.enabled=1
Как минимум хуже не будет?

А глобально - планирую из компиляции ядра у нам сделать раздел. Инфы уже много. Будеи потихоньку разбираться с параметрами. Как минимум uksm и le9 уже окупили трудозатраты на разбирательство с ядром
Я продвинулся за эту неделю в компиляции ядра  .
С моим новым PKGBUILD настроить и скомпилить сможет любой желающий (любой конфиг с любыми патчами и фичами по монолиту и оптимизации размер\производительность).

Ну и надо продолжать юзать pf - там автор прошаренный. Собирает весь свежак. Вот бы его к нам на форум заманить (он русскоязычный), но , думаю ему с нами интересно не будет
Надо будет отдельной темой разобраться в каком варианте компилить далее ядра и в какой дистр какое...
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 06 Январь 2022, 21:48:19
Крайние два изменения (https://gitlab.com/post-factum/pf-kernel/-/commits/pf-5.15) damon, попали уже в 5.15-pf6 (https://gitlab.com/post-factum/pf-kernel/-/tags), который пока не опубликован.
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 08 Январь 2022, 22:30:25
Код
root@roll2110:1# uname -r
5.15.0-pf5-mgm
root@roll2110:1# cat /sys/module/damon_reclaim/parameters/enabled
Y
root@roll2110:1# cat /proc/cmdline
BOOT_IMAGE=/prar2110/vmlinuz-5.15.0-pf5-mgm_64 load=de-ovs;intel zram=33%  root=/dev/sda1 rw net.ifnames=0 biosdevname=0 damon_reclaim.enabled=1 quiet dir=prar2110 nopulse extramod=/prar2008/modules
Т.е. по дефолту - включен, т.е включение через параметр ядра надо перепроверять
Скомпилено как и авторское
Код
# grep -i damon mgm.config 
CONFIG_DAMON=y
# CONFIG_DAMON_VADDR is not set
CONFIG_DAMON_PADDR=y
CONFIG_DAMON_RECLAIM=y
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 08 Январь 2022, 22:32:45
damon_reclaim.enabled=1
В смысле, по дефолту включен?
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 08 Январь 2022, 22:35:31
В смысле, что я загрузился без damon_reclaim.enabled=1 , а имею # cat /sys/module/damon_reclaim/parameters/enabled
Y
Без дополнительных действий
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 08 Январь 2022, 22:39:45
т.е включение через параметр ядра надо перепроверять
Код
# cat /sys/module/damon_reclaim/parameters/enabled 
Y
root@roll2110:live# cat /proc/cmdline
BOOT_IMAGE=/prar2110/vmlinuz-5.15.0-pf5-mgm_64 load=de-ovs;intel damon_reclaim.enabled=0
Не работает. Включено всегда
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: sfs от 09 Январь 2022, 10:13:13
Поэкспериментировал
Проверить включение : pgrep -a kdamond
Вкл  : sudoi echo Y >/sys/module/damon_reclaim/parameters/enabled
Выкл: sudoi echo N >/sys/module/damon_reclaim/parameters/enabled
Увеличения ресурсоемкости не отметил , т.е. выкл смысла нет. По умолчанию вкл
Название: Re: PF ядро. CONFIG_DAMON_RECLAIM=y
Отправлено: krasnyh от 24 Май 2022, 21:08:37
Релиз ядра Linux 5.18 (https://www.opennet.ru/opennews/art.shtml?num=57235)
дальнейшее развития инструментов работы с памятью, таких как DAMON

Немного не разобрался, там речь шла не о 'дошлифовывании' DAMON, а об "введении для него интерфейса sysfs, получившего название «DAMOS» — схемы операций на основе DAMON.".

DAMON в Linux 5.18 добавляет интерфейс конфигурации DAMOS (https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.18-DAMON-DAMOS)
Описание патча, с примером в конце статьи (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b18402726bd10e122c65eecc244ca1cdcb868cc8)


Как эти знания применять на практике, без понятия. В шапке темы инфа об экономии памяти, которую дает механизм DAMON:
Цитата
Оценка
==========

Короче говоря, DAMON_RECLAIM в ядре Linux v5.13 с устройством подкачки ZRAM и
временной квотой 50 мс / с обеспечивает экономию памяти 40,34% при накладных расходах всего 3,38%.
https://lkml.org/lkml/2021/7/20/429