nohang/nohang.conf
2018-06-11 16:08:28 +09:00

144 lines
6.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Nohang config file
Комментариями являются строки, начинающиеся с решёток, пробелов
и табуляций. Инлайновые комментарии запрещены. Пробелы допустиы
внутри строк в любом количестве.
#####################################################################
I. VERBOSITY
Печатать параметров конфига при запуске программы.
Допустимые значения: True и False
print_config = True
Печатать ли результаты измерения доступной памяти.
Допустимые значения: True и False
print_mem_check_results = True
#####################################################################
II. САМОЗАЩИТА ПРОЦЕССА
True - заблокировать процесс в памяти для запрета его своппинга.
False - не блокировать. Значения чувствительны к регистру!
mlockall = True
Установка отрицательных значений self_nice и self_oom_score_adj
требует наличия root прав.
Повысить приоритет процесса, установив niceness -20
Допустимые значения - целые числа из диапазона [-20; 19]
self_nice = -20
Задать oom_score_adj для процесса.
Установка значения -1000 запретит самоубийство.
Допустимые значения - целые числа из диапазона [-1000; 1000]
self_oom_score_adj = -1000
#####################################################################
III. ИНТЕНСИВНОСТЬ МОНИТОРИНГА
Коэффициенты, влияющие на интенсивность мониторинга.
Допустимыми значениями являются положительные числа.
Уменьшение коэффициентов способно снизить нагрузку на
прцессор и увеличить периоды между проверками памяти.
Почему три коэффициента, а не один? - Потому что скорость
наполнения свопа обычно ниже скорости наполнения RAM.
Можно для свопа задать более низкую интенсивность
мониторинга без ущерба для предотвращения нехватки памяти
и тем самым снизить нагрузку на процессор.
В дефолтных настройках на данной интенсивности демон работает
достаточно хорошо, успешно справляясь с резкими скачками потребления
памяти.
rate_mem = 6
rate_swap = 0.2
rate_zram = 1
#####################################################################
IV. ПОРОГИ ДЛЯ ОТПРАВКИ СИГНАЛОВ
Задание уровней доступной памяти, ниже которых происходит
отправка сигналов SIGTERM или SIGKILL.
Сигнал отправляется если MemAvailable и SwapFree одновременно
опустятся ниже соответствующих значений.
Значения могут быть выражены в процентах (%),
кибибайтах (K), мебибайтах (M) или гибибайтах (G).
Например:
swap_min_sigterm = 8 %
mem_min_sigterm = 0.5 G
swap_min_sigkill = 200 M
mem_min_sigterm = 8%
mem_min_sigkill = 4%
swap_min_sigterm = 8%
swap_min_sigkill = 4%
Задание общей доли zram в памяти, при превышении которой
происходит отправка соответствующих сигналов.
Экспериментально удалось добиться доли зрам в 95%, при которой
система виснет или запускается OOM killer.
По мере увеличения доли zram в памяти может падать
отзывчивость системы.
Может также задаваться в %, K, M, G
zram_max_sigterm = 55 %
zram_max_sigkill = 60 %
#####################################################################
VI. ПРЕДОТВРАЩЕНИЕ ИЗБЫТОЧНЫХ УБИЙСТВ
Минимальное значение oom_score, которым должен обладать
процесс для того, чтобы ему был отправлен сигнал.
Позволяет предотвратить убийство невиновных если что-то
пойдет не так.
Значение должно быть целым числом из диапазона [0; 1000]
oom_score_min = 15
Мнинмальная задержка после отправки соответствующих сигналов
для предотвращения риска убийства сразу множества процессов.
Должно быть неотрицательным числом.
min_delay_after_sigterm = 0.1
min_delay_after_sigkill = 3
#####################################################################
VII. ЗАЩИТА ПРОЦЕССОВ CHROMIUM ОТ СМЕРТИ ПО ЧУЖОЙ ВИНЕ
Процессы браузера chromium обычно имеют oom_score_adj
200 или 300. Это приводит к тому, что процессы хрома умирают
первыми вместо действительно тяжелых процессов.
Если параметр decrease_oom_score_adj_enable установлен
в значение True, то у процессов, имеющих oom_score_adj выше
oom_score_adj_before значение oom_score_adj будет опущено
до oom_score_adj_after перед поиском жертвы.
False - не изменять oom_score_adj процессов перед поиском
жертвы. Значения чувствительны к регистру!
Требует root прав.
decrease_oom_score_adj_enable = False
oom_score_adj_before = 50
oom_score_adj_after = 10