This commit is contained in:
Alexey Avramov 2018-06-09 02:35:15 +09:00
parent a6d7346deb
commit 216f928873

View File

@ -27,6 +27,10 @@ https://2ch.hk/s/res/2310304.html#2311483, https://archive.li/idixk
Nohang позволяет избавиться от перечисленных выше проблем, корректно завершая наиболее прожорливые процессы сигналом SIGTERM не дожидаясь когда система "встанет колом".
### Зачем нуден nohang, если уже есть earlyoom?
- `earlyoom` завершает (точнее убивает) процессы исключительно с помощью сигнала `SIGKILL`, в то время как `nohang` дает возможность сначала отправлять `SIGTERM`, и только если процесс не реагирует на `SIGTERM` - отправляется сигнал `SIGKILL`.
- `earlyoom` не поддерживает работу со `zram` и не реагирует на общую долю `zram` в памяти (`mem_used_total`). Это может привести к тому, что система все также встанет колом, как если бы earlyoom и не было (если disksize большой, а энтропия сжимаемых данных велика). Nohang позволяет избавиться от этой проблемы. По умолчанию если доля zram достигнет 60% памяти - будет отправлен сигнал SIGTERM процессу с наибольшим oom_score.
### Особенности
- задача - препятствовать зависанию системы при нехватке доступной памяти, а также корректное завершение процессов с целью увеличения объема доступной памяти