Фокс конкретно достал своим прожорством. Шестнадцать гигов, а я постоянно вижу как всё свапится из-за этого гада. (и не гыкайте мне тут, все браузеры ведут себя одинаково) Ладно бы я что-то сложное делал. Но он явно не отпускает страницы из памяти, хотя уже и выставил кучу всяких уловок. Но вот что мне не давало покоя - этот гад видит сколько в компе памяти и не собирается останавливаться пока не выжрет всё. В результате все программы должны по стеночкам обходить. А тут вы со своими спорами про systemd. И придумал я гадкое, засунул фокса в персональную группу с ограничениями. Сделал так:
Создал директорию ~/.config/systemd/user/app-firefox@.service.d/
В ней файл override.conf со следующим содержимым
[Service]
MemoryHigh=1.5G
MemoryMax=4G
MemorySwapMax=0
Перезапустил всё и стало хорошо на душе, фокс стоит на полтора гигах, как вкопанный. Но только включил ютуб, переключился на другое окно с другой вкладкой в другом фоксовском контейнере и всё дико тормозить стало. Я поднял до 2.5G, стало полегче, но всё равно, дойдёт до черты и тормоза лютые сразу. И тут я понял, что он смотрит куда-то в meminfo насчёт доступного рама, но не видит ограничений системды. И поэтому сходу влетает в ограничение, полагая, что все 16 гигов его. Тогда я создал фейковый ~/.fake_meminfo в домашней папке где заменил MemTotal: 4194304 kB и произошло чудо. Всё стало вполне сносно. Но вдруг внезапно он стал падать после нескольких видео на ютубе. Видимо недостаточно я ему наврал. Тога я попросил у ИИ сгенерить meminfo чтобы было похоже, что мы подходим к границе доступной памяти. Вот такой файл ~/.fake_meminfo в итогу получился
MemTotal: 4194304 kB
MemFree: 350000 kB
MemAvailable: 512000 kB
Buffers: 50000 kB
Cached: 600000 kB
SwapCached: 0 kB
Active: 2500000 kB
Inactive: 800000 kB
Active(anon): 2000000 kB
Inactive(anon): 4000 kB
Active(file): 500000 kB
Inactive(file): 800000 kB
SwapTotal: 15580020 kB
SwapFree: 15580020 kB
Dirty: 1000 kB
Writeback: 0 kB
AnonPages: 2000000 kB
Mapped: 400000 kB
Shmem: 150000 kB
Slab: 300000 kB
CommitLimit: 22656768 kB
Committed_AS: 15171448 kB
DirectMap4k: 800000 kB
DirectMap2M: 3000000 kB
а файл override.conf стал таким
[Service]
MemoryHigh=2.5G
MemoryMax=4G
MemorySwapMax=0
# "Обман" - подмена файла для Firefox
BindReadOnlyPaths=/home/pchelobiaka/.fake_meminfo:/proc/meminfo
И… иии… вроде работает. Полноценный Фокс с контейнерами, по собственной воле держит около 2 гигов и не больше.
Спешу поделиться наблюдением. Пробуйте кому интересно. И может что дельное подскажете.
Впервые в жизни придумал как использовать systemd. Хоть и можно было без него, но раз уж он есть, то пусть хоть что-то делает для меня полезное.





