6
This commit is contained in:
parent
7e2ff8789c
commit
1a232f17f8
30
README.md
30
README.md
@ -9,24 +9,25 @@ Nohang - аналог [earlyoom](https://github.com/rfjakob/earlyoom) с под
|
|||||||
- задача - препятствовать зависанию системы при нехватке доступной памяти, а также корректное завершение процессов с целью увеличения объема доступной памяти
|
- задача - препятствовать зависанию системы при нехватке доступной памяти, а также корректное завершение процессов с целью увеличения объема доступной памяти
|
||||||
- демон на python3, RSS около 12 MiB
|
- демон на python3, RSS около 12 MiB
|
||||||
- требуется Python 3.4+ и Linux 3.14+
|
- требуется Python 3.4+ и Linux 3.14+
|
||||||
- периодически проверяет размеры доступной памяти, при дефиците памяти отправляет SIGKILL или SIGTERM процессу с наибольшим oom_score
|
- периодически проверяет размеры доступной памяти, при дефиците памяти отправляет `SIGKILL` или `SIGTERM` процессу с наибольшим `oom_score`
|
||||||
- поддержка работы со zram, возможность реакции на mem_used_total
|
- поддержка работы со `zram`, возможность реакции на `mem_used_total`
|
||||||
- удобный конфиг с возможностью тонкой настройки
|
- удобный конфиг с возможностью тонкой настройки
|
||||||
- возможность раздельного задания уровней MemAv, SwFree, mem_used_total для отпраки SIGTERM и SIGKILL, возможность задания в %, KiB, MiB, GiB
|
- возможность раздельного задания уровней `MemAvailable`, `SwapFree`, `mem_used_total` для отпраки `SIGTERM` и `SIGKILL`, возможность задания в %, KiB, MiB, GiB
|
||||||
- возможность снижения oom_score_adj процессов, чьи oom_score_adj завышены (актуально для chromium)
|
- возможность снижения `oom_score_adj` процессов, чьи `oom_score_adj` завышены (актуально для chromium)
|
||||||
- лучший алгоритм выбора периодов между проверками доступной памяти: при больших объемах доступной памяти нет смысла проверять ее состояние часто, поэтому период проверки уменьшается по мере уменьшения размера доступной памяти
|
- лучший алгоритм выбора периодов между проверками доступной памяти: при больших объемах доступной памяти нет смысла проверять ее состояние часто, поэтому период проверки уменьшается по мере уменьшения размера доступной памяти
|
||||||
- интенсивность мониторинга можно гибко настраивать (параметры конфига rate_mem, rate_swap, rate_zram)
|
- интенсивность мониторинга можно гибко настраивать (параметры конфига `rate_mem`, `rate_swap`, `rate_zram`)
|
||||||
- память заблокирована с помощью mlockall() для предотвращения своппинга процесса
|
- память заблокирована с помощью `mlockall()` для предотвращения своппинга процесса
|
||||||
- по умолчанию высокий приоритет процесса nice -20, может регулироваться через конфиг
|
- по умолчанию высокий приоритет процесса `nice -20`, может регулироваться через конфиг
|
||||||
- предотвращение самоубийства с помощью self_oom_score_adj = -1000
|
- предотвращение самоубийства с помощью `self_oom_score_adj = -1000`
|
||||||
- возможность задания oom_score_min для предотвращения убийства невиновных
|
- возможность задания oom_score_min для предотвращения убийства невиновных
|
||||||
- min_delay_after_sigkill для предотвращения массовых убийств
|
- `min_delay_after_sigkill` для предотвращения массовых убийств
|
||||||
- наличие системд юнита
|
- наличие системд юнита
|
||||||
- ман страница сделана
|
- ман страница сделана
|
||||||
- инсталлятор и деинсталлятор есть
|
- инсталлятор и деинсталлятор есть
|
||||||
- протестировано на Debian 9 x86_64, Debian 9 x86, Debian 8 x86, Fedora 28 x86_64
|
- протестировано на Debian 9 x86_64, Debian 9 x86, Debian 8 x86, Fedora 28 x86_64
|
||||||
- вывод отчета об убийствах такого вида
|
- вывод отчета об убийствах такого вида
|
||||||
```2018-Jun-07 04:55:16 Mem: 0 M, Swap: 454 M, Zram: 488 M
|
```bash
|
||||||
|
2018-Jun-07 04:55:16 Mem: 0 M, Swap: 454 M, Zram: 488 M
|
||||||
mem_available < mem_term_level and swap_free < swap_term_level
|
mem_available < mem_term_level and swap_free < swap_term_level
|
||||||
Try to send signal 15 to process python3, Pid 7281, oom_score 893
|
Try to send signal 15 to process python3, Pid 7281, oom_score 893
|
||||||
Success
|
Success
|
||||||
@ -34,19 +35,22 @@ Success
|
|||||||
|
|
||||||
Установка
|
Установка
|
||||||
=========
|
=========
|
||||||
```git clone https://github.com/hakavlad/nohang.git
|
```bash
|
||||||
|
git clone https://github.com/hakavlad/nohang.git
|
||||||
cd nohang
|
cd nohang
|
||||||
sudo ./install.sh
|
sudo ./install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Удаление вместе с конфигом
|
Удаление вместе с конфигом
|
||||||
==========================
|
==========================
|
||||||
```sudo ./purge.sh
|
```bash
|
||||||
|
sudo ./purge.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Удалить всё, кроме конфига
|
Удалить всё, кроме конфига
|
||||||
==========================
|
==========================
|
||||||
```sudo ./uninstall.sh
|
```bash
|
||||||
|
sudo ./uninstall.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Настройка
|
Настройка
|
||||||
|
Loading…
Reference in New Issue
Block a user