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, меняет вероятность в большую или меньшую сторону, а не задаёт абсолютное значение.