- Явная и гибкая конфигурация через конфигурационный файл. Все, что может быть настраиваемо, по возможности вынесено в конфиг. Таким образом, запуск демона без конфига невозможен. Также пользователь может видеть все значения ключей конфига. Минимум скрытых параметров.
- Возможность поэтапного реагирования на нехватку памяти. Можно настроить три порога реакции:
- Для отправки GUI уведомдений о нехватке памяти (либо выполнение произвольной команды, например отправки e-mail)
- Порог отправки сигнала SIGTERM (в большинстве случаев коррекция происходи здесь). Это главное корректирующее действие, после которого большинство процессов завершаются, по возможности корректно.
- Если жертва не реагирует на SIGTERM, то получит сигнал SIGKILL при дальнейшем уменьшении объема доступной памяти, или по прошествии определенного времени (ключ конфига max_soft_exit_time).
- Возможность реагирования на разные виды раздражителей:
- При наличии пространства подкачки демон реагирует на объем доступного пространства подкачки (SwapFree) при условии, что порог доступной памяти также ниже заданного уровня. При отсутствии пространства подкачки демон реагирует на объем доступной памяти (MemAvailable).
- При наличии пространства подкачки демон может реагировать на превышение метрик PSI, если это задано в конфиге. Корректирующее действие происходит если в течение заданного времени (psi_excess_duration) порог доступной памяти и порог заданной метрики PSI превышены одновременно, но не ранее чем через psi_post_action_delay после предыдущего корректирующего действия.
- Возможность реакции на размер mem_used_total, если смонтированы устойства zram.
- Возможность влияния на выбор жертвы при корректирующем действии путем сопоставления различных характеристик процесса (name, exe realpath, euid, cgroup etc) с заданными регулярными выражениями. Это похоже на маханизм, используемый в ядре, однако вместо oom_score_adj для отдельных PID можно задать badness_adj для всех процессов, подходящих под определенные критерии.
- Возможность GUI уведомлений о совершенных корректирующих действиях.
- Возможность кастомизации корректирующего действия. Эта возможность еще сырая. Включает в себя:
- На мягком (SIGTERM) пороге для процессов с заданными свойствами, если они становятся жертвами, выполнять заданную команду.
- На жестком (SIGKILL) пороге можно с помощью ключа post_kill_exe задать произвольную команду, которая будет выполняться после любого жесткого корректирующего действия.
Почему в настройках реакции на метрики PSI по умолчанию предлагается реагирование на some avg10, а не full avg10?
Нет, но поддержка этого может быть добавлена в будущих релизах.