
# FAQ для русскоязычных

### Каковы основные особенности демона?

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

### Почему не триггерим ядерный OOM killer?

### Что такое PSI и как это помогает в обработке нехватки памяти?

### Как проверить поддержку PSI ядром?

### Зачем нужен ключ zram_checking_enabled?

### Как демон предотвращает убийство невиновных?

### Не показываются GUI уведомления. В чем возможная причина?

### В KDE Plasma история GUI уведомлений не сохраняется. Как исправить?

### Как пользоваться oom-sort?

### Как пользоваться psi-top?

### Как пользоваться psi2log?

### nohang vs earlyoom

### nohang vs oomd

### Как запустить и протестировать nohang без установки?

### Что не так с ZFS?

### В каких ситуациях демон не поможет?

### Почему в настройках реакции на метрики PSI по умолчанию предлагается реагирование на some avg10, а не full avg10?

### Система зависает, демон не помогает. В чем проблема и что делать?

### Как протестировать работу демона? Как создать нагрузку на память?

### В каких случаях лучше не включать проверку PSI?

### nohang vs nohang-desktop: в чем разница?

### Как это вообще работает?

### Как получить список доступных для мониторинга файлов PSI?

### Поддерживается ли убийство групп процессов?

Нет, но поддержка этого может быть добавлена в будущих релизах.

### Как смотреть логи?






