Для соответствующей настройки memavaild
нужно добавить в конфиг /etc/memavaild.conf
следующую строку:
@LIMIT CGROUP=user.slice/user-$UID.slice/user@$UID.service/idle.slice MIN_MEM_HIGH_PERCENT=5 RELATIVE_SHARE=0.2
Добавляем в ~/.bashrc
:
alias idle-run='systemd-run --slice=idle.slice --shell'
Далее для запуска жирных процессов выполняем в эмуляторе терминала idle-run
, и далее процессы в этом терминале будут выполняться в отдельном слайсе, который первоочередно будет вытесняться в своп при помощи memavaild
.
Повесить на горячую клавишу запуск терминала сразу через systemd-run
, команда примерно такая: systemd-run --user --slice=idle.slice --shell
.
Без фризов при свопе на HDD выполняется tail /dev/zero
:
В комбинации в prelockd
и nohang-desktop
и со свопом на zram и вовсе можно выдерживать while true; do (tail /dev/zero &); done
(не повторять! опасно!):
Можно обеспечить первоочередное вытеснение гном-терминала и процессов, запущенных в нем. Нужно лишь раскомментировать строку
# @LIMIT CGROUP=user.slice/user-$UID.slice/user@$UID.service/app.slice/app-org.gnome.Terminal.slice MIN_MEM_HIGH_PERCENT=5 RELATIVE_SHARE=0.2
А для запуска задач с обычным приоритетом можно использовать любой другой эмулятор, например lxterminal.
TODO:
переименовать ключи конфига, сделав имена более интуитивно понятными
описать ключи - что значит каждый ключ, на что влияет
описать возможные способы применения