правка конфига и ридми
This commit is contained in:
parent
992a604a6b
commit
6bccc3402f
@ -35,12 +35,12 @@ https://2ch.hk/s/res/2310304.html#2311483, https://archive.li/idixk
|
||||
|
||||
### Зачем нужен nohang, если уже есть earlyoom?
|
||||
|
||||
- `earlyoom` завершает (точнее убивает) процессы исключительно с помощью сигнала `SIGKILL`, в то время как `nohang` дает возможность сначала отправлять `SIGTERM`, и только если процесс не реагирует на `SIGTERM` - отправляется сигнал `SIGKILL`.
|
||||
- `earlyoom` не поддерживает работу со `zram` и не реагирует на общую долю `zram` в памяти (`mem_used_total`). Это может привести к тому, что система все также встанет колом, как если бы `earlyoom` и не было (если `disksize` большой, а энтропия сжимаемых данных велика). `Nohang` позволяет избавиться от этой проблемы. По умолчанию если доля `zram` достигнет 60% памяти - будет отправлен сигнал `SIGTERM` процессу с наибольшим `oom_score`.
|
||||
- `Earlyoom` завершает (точнее убивает) процессы исключительно с помощью сигнала `SIGKILL`, в то время как `nohang` дает возможность сначала отправлять `SIGTERM`, и только если процесс не реагирует на `SIGTERM` - отправляется сигнал `SIGKILL`.
|
||||
- `Earlyoom` не поддерживает работу со `zram` и не реагирует на общую долю `zram` в памяти (`mem_used_total`). Это может привести к тому, что система все также встанет колом, как если бы `earlyoom` и не было (если `disksize` большой, а энтропия сжимаемых данных велика). `Nohang` позволяет избавиться от этой проблемы. По умолчанию если доля `zram` достигнет 60% памяти - будет отправлен сигнал `SIGTERM` процессу с наибольшим `oom_score`.
|
||||
|
||||
### Некоторые особенности
|
||||
- задача - препятствовать зависанию системы при нехватке доступной памяти, а также корректное завершение процессов с целью увеличения объема доступной памяти
|
||||
- демон на Python 3, VmRSS от 10 до 14 MiB в зависимости от настроек
|
||||
- демон на Python 3, VmRSS от 9.5 до 12.9 MiB в зависимости от настроек
|
||||
- требуется ядро `Linux 3.14` или новее
|
||||
- периодически проверяет объем доступной памяти, при дефиците памяти отправляет `SIGKILL` или `SIGTERM` процессу с наибольшим `oom_score`
|
||||
- поддержка работы со `zram`, возможность реакции на `mem_used_total`
|
||||
|
@ -1,20 +1,21 @@
|
||||
#!/bin/bash -v
|
||||
|
||||
cp -f nohang /usr/local/bin/
|
||||
cp nohang /usr/local/bin/
|
||||
chmod 755 /usr/local/bin/nohang
|
||||
|
||||
mkdir /etc/nohang
|
||||
chmod 755 /etc/nohang
|
||||
cp -f nohang.conf /etc/nohang/
|
||||
cp nohang.conf /etc/nohang/
|
||||
chmod 644 /etc/nohang/nohang.conf
|
||||
|
||||
gzip -k nohang.1
|
||||
mkdir /usr/local/share/man/man1
|
||||
chmod 755 /usr/local/share/man/man1
|
||||
cp -f nohang.1.gz /usr/local/share/man/man1/
|
||||
cp nohang.1.gz /usr/local/share/man/man1/
|
||||
chmod 644 /usr/local/share/man/man1/nohang.1.gz
|
||||
rm nohang.1.gz
|
||||
|
||||
cp -f nohang.service /etc/systemd/system/
|
||||
cp nohang.service /etc/systemd/system/
|
||||
chmod 644 /etc/systemd/system/nohang.service
|
||||
systemctl daemon-reload
|
||||
systemctl enable nohang
|
||||
|
@ -36,7 +36,7 @@ print_sleep_periods = True
|
||||
В Fedora 28 значение True вызывает увеличение потребления
|
||||
памяти процессом на 200 MiB, в Debian 8 и 9 такой проблемы нет.
|
||||
|
||||
mlockall = True
|
||||
mlockall = False
|
||||
|
||||
Установка отрицательных значений self_nice и self_oom_score_adj
|
||||
требует наличия root прав.
|
||||
@ -140,7 +140,7 @@ decrease_oom_score_adj = True
|
||||
|
||||
Допустимые значения - целые числа из диапазона [0; 1000]
|
||||
|
||||
oom_score_adj_max = 20
|
||||
oom_score_adj_max = 30
|
||||
|
||||
#####################################################################
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user