Original article: http://kbase.redhat.com/faq/docs/DOC-5359.pdf
Translated by Ivan Pesin, June 2009
Ядро Red Hat Enterprise Linux 5.2 создает 2 файла для каждого процесса, которые позволяют управлять вероятностью, с которой этот процесс будет завершён, когда система будет вынуждена заврешать процессы из-за нехватки оперативной памяти (out-of-memory, OOM). Это файлы:
/proc/[pid]/oom_adj
— используется для изменения “OOM-счёта” (OOM score), который определяет вероятность завершения процесса при нехватке оперативной памяти. Чем больше значение OOM-счёта, тем больше вероятность того, что процесс будет завершён подсистемойoomkill
. Допустимые значения находятся в промежутке от -17 до 15; обратите внимание, что OOM-счёт равный -17 означает, что[pid]
не будет завершён при нехватке памяти.Чтобы задать OOM-счёт, просто выполните команду
echo значение
с выводом в файл/proc/[pid]/oom_adj
. Например, чтобы установить OOM-счёт равный 15 для процесса1111
, выполните:1echo 15 > /proc/1111/oom_adjУчтите, что OOM-счёт наследуется процессом-потомком от родительского процесса при использовании системных вызовов семейства
fork()
./proc/[pid]/oom_score
— содержит текущий OOM-счёт для данного процесса. Используйте командуcat
чтобы посмотреть текущий OOM-счёт для процесса с номером[pid]
. Например, чтобы узнать текущий OOM-счёт для процесса1111
, выполните:1cat /proc/1111/oom_score
Прим. пер.: Значение в файле oom_score
— динамически вычисляемое, оно не равняется значению, которое передаётся в файл oom_adj
. Значение, передаваемое в файл oom_adj
, меняет вероятность в большую или меньшую сторону, а не задаёт абсолютное значение.