16.03.2013 08:33
OlegON
 
Поскольку поставил себе SSD, то со свопом пришлось попрощаться. Выкладывать его некуда. В связи с этим достаточно часто встречаюсь с oom_killer, который, к счастью, пока пылал любовью только к таким вещам, как squid и 7z. Однако проблема достаточно часто была вовсе не в них, а в тонне потоков java, в том числе и утекающих, которых я хоть и прибиваю, но достаточно поздно. Соответственно, необходимо было отрегулировать приоритеты oom_killer таким образом, чтобы при нехватке памяти сначала прибивалась именно java. Почитал, раньше была oom_adj, но она теперь deprecated, теперь oom_score_adj, которую можно менять от -1000 до 1000 и чем больше значение, тем выше вероятность, что oom_killer начнет с этого процесса. Сделал так, в скрипте запуска java.
Код:
echo 1000 > /proc/self/oom_score_adj
pgrep -f "java" | while read PID; do echo 1000 > /proc/$PID/oom_score_adj; done
04.07.2020 21:24
OlegON
 
Искал как регулируется oom_score_adj, нашел эту тему :)
Суть дополнения: если вы поставите какому-то процессу -1000 для его защиты, и, если он вдруг надумает потечь памятью, то все... Спасет только ребут по кнопке.
Поэтому, если надумаете ставить какие-то значения, не следует опускаться ниже -500.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.