косметические правки

This commit is contained in:
Alexey Avramov 2018-06-12 13:53:04 +09:00
parent 9d33ccb4ca
commit 626592190b
2 changed files with 11 additions and 12 deletions

View File

@ -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
View File

@ -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:
###########################################################################################
# - цикл проверки уровней доступной памяти