Существует ли способ установить уничтожающее право значения корректировки OOM, когда процесс демона (Apache в моем случае) запускается? Я хотел бы дать процессам Apache более высокую вероятность того, чтобы быть уничтоженным и сделать фактически невозможным для некоторых более жизненных сервисов быть уничтоженным уничтожителем OOM.
Я думаю Вы, лучший выбор состоял бы в том, чтобы добавить отдельный сценарий как часть Вашего init.d. В нем Вы захотите сделать что-то вроде этого
echo 15 > /proc/`pidof APP_NAME`/oom_adj
pidof APP_NAME
получит идентификатор процесса приложения с тем именем. Запись 15 к/proc/{pid}/oom_adj взлеты "вредность" процесса {pid}, создание его более вероятно, чтобы быть уничтоженным уничтожителем OOM.
Статья Taming уничтожитель OOM из LWN.net также намекает на некоторые другие идеи, которым предложили позволить спецификацию "oom_victim", но я не уверен ни один из них, находится на самом деле в ядре.
BTW: лучшее решение состояло бы в том, чтобы избежать необходимости использовать Уничтожителя OOM во-первых. Помните Micro$oft's незаписанный девиз: нет никакой проблемы, которую не может решить больше RAM.
[Примечание: Если мог бы быть больше чем один из этих процессов, можно хотеть пересмотреть код немного.]
Для человечности 15.04 это изменилось.
Корректный способ установить oom, устанавливающий для pid,
echo 42 > /proc/666/oom_score_adj
вместо /proc/666/oom_adj