Как работает OOM Killer

Как работает OOM Killer

BASH DAYS — авторский канал от действующего девопса
Подпишись на наш ТГ канал: @bashdays


Как вычисляются очки негодности?

За основу берется процент физической памяти используемой процессом и умножается на 10, таким образом получаем базовое значение. 1000 очков = 100%. После того к базовому значению начинают применяться различные модификаторы.

- Прибавляется половина очков от всех дочерних процессов, которые имеют собственную виртуальную память.

- Если приоритет процесса > 0, то очки умножаются на 2. Приоритет процесса может иметь значения от -20 до +20. В данном случае +20 это самый низкий приоритет.

- Очки делятся на коэффициент, связанный с процессорным временем, чем более активнее процесс и чем больше процессорного времени он использует, тем больше будет его коэффициент.

- Очки делятся на коэффициент, связанный с временем жизни процесса, чем больше времени прошло с момента запуска, тем выше будет это значение.

- Для процессов, запущенных от имени root, служебных учеток или процессов ввода-вывода очки делятся на 4.

- Для процесса, при выделении памяти у которого произошла ошибка out of memory и процессам имеющим с ним общую память, очки делятся на 8.

- Все что получилось выше умножается на 2^oom_adj. Где oom_adj это специальный коэффициент, имеющий значения от -17 до +15, при -17 процесс никогда не будет убит.



Report Page