косметические правки
This commit is contained in:
parent
9d33ccb4ca
commit
626592190b
11
README.md
11
README.md
@ -2,7 +2,7 @@
|
||||
The No Hang Daemon
|
||||
==================
|
||||
|
||||
`Nohang` - аналог [earlyoom](https://github.com/rfjakob/earlyoom) с поддержкой `zram` и `SIGTERM`. При дефиците доступной памяти `nohang` корректно завершает наиболее прожорливые процессы сигналом `SIGTERM`, тем самым препятствуя зависанию, а также избыточному убийству процессов ядерным `OOM killer`'ом.
|
||||
`Nohang` - аналог [earlyoom](https://github.com/rfjakob/earlyoom) с поддержкой `zram` и `SIGTERM`. При дефиците доступной памяти `nohang` корректно завершает наиболее прожорливые процессы сигналом `SIGTERM` или `SIGKILL`, тем самым препятствуя зависанию, а также избыточному убийству процессов ядерным `OOM killer`'ом.
|
||||
|
||||
### Зачем это нужно?
|
||||
|
||||
@ -25,7 +25,7 @@ https://www.linux.org.ru/forum/talks/12684213?lastmod=1466676523241#comment-1268
|
||||
"И IRL ты никогда не знаешь, в какой момент момент твои данные перестанут умещаться в оперативку. Потому zram -- удел embedded систем, где это может быть детерминировано."
|
||||
https://2ch.hk/s/res/2310304.html#2311483, https://archive.li/idixk
|
||||
|
||||
`Nohang` позволяет избавиться от перечисленных выше проблем, корректно завершая наиболее прожорливые процессы сигналом `SIGTERM` не дожидаясь когда система "встанет колом". `Nohang` позволяет не бояться зависаний при использовании `zram`.
|
||||
`Nohang` позволяет избавиться от перечисленных выше проблем, корректно завершая наиболее прожорливые процессы (с наибольшим oom_score) сигналом `SIGTERM` (или `SIGKILL`) не дожидаясь когда система "встанет колом". `Nohang` позволяет не бояться зависаний при использовании `zram`.
|
||||
|
||||
### Зачем нужен nohang, если уже есть earlyoom?
|
||||
|
||||
@ -34,9 +34,9 @@ https://2ch.hk/s/res/2310304.html#2311483, https://archive.li/idixk
|
||||
|
||||
### Особенности
|
||||
- задача - препятствовать зависанию системы при нехватке доступной памяти, а также корректное завершение процессов с целью увеличения объема доступной памяти
|
||||
- демон на Python 3, VmRSS около 12 MiB
|
||||
- демон на Python 3, VmRSS около 12.8 MiB
|
||||
- требуется `Linux 3.14+` и `Python 3.4+`
|
||||
- периодически проверяет размеры доступной памяти, при дефиците памяти отправляет `SIGKILL` или `SIGTERM` процессу с наибольшим `oom_score`
|
||||
- периодически проверяет объем доступной памяти, при дефиците памяти отправляет `SIGKILL` или `SIGTERM` процессу с наибольшим `oom_score`
|
||||
- поддержка работы со `zram`, возможность реакции на `mem_used_total`
|
||||
- удобный конфиг с возможностью тонкой настройки
|
||||
- аргументы командной строки -h/--help и -c/--config
|
||||
@ -101,6 +101,3 @@ sudo ./uninstall.sh
|
||||
### Известные баги
|
||||
В рабочем алгоритме известных нет, если найдете - пишите в [Issues](https://github.com/hakavlad/nohang/issues).
|
||||
|
||||
|
||||
|
||||
|
||||
|
12
nohang
12
nohang
@ -202,9 +202,6 @@ arg_config = parser.parse_args().config
|
||||
|
||||
if arg_config is None:
|
||||
|
||||
# print('конфиг не задан через опцию -с/--config, берем его из дефолтных путей')
|
||||
del arg_config
|
||||
|
||||
config = None
|
||||
for i in default_configs:
|
||||
if os.path.exists(i):
|
||||
@ -216,8 +213,6 @@ if arg_config is None:
|
||||
|
||||
else:
|
||||
|
||||
# print('через опцию задан путь к конфигу {}'.format(arg_config))
|
||||
|
||||
if os.path.exists(arg_config):
|
||||
config = arg_config
|
||||
else:
|
||||
@ -574,6 +569,13 @@ if print_config:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################################################################
|
||||
|
||||
# - цикл проверки уровней доступной памяти
|
||||
|
Loading…
Reference in New Issue
Block a user