144 lines
6.5 KiB
Plaintext
144 lines
6.5 KiB
Plaintext
|
||
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
|
||
|