SystemdDoctor
OOMScoreAdjust= [Service]

OOMScoreAdjust= и OOMPolicy= в systemd

OOMScoreAdjust= меняет привлекательность процессов службы для механизма освобождения памяти: от −1000 (убивать последним) до 1000 (убивать первым). OOMPolicy= определяет, что делать со службой, когда её процесс убит.

Что делает

Первый параметр — способ расставить приоритеты: базе данных и системным службам ставят отрицательные значения, необязательным фоновым задачам — положительные. Отрицательные значения требуют прав, поэтому в службах пользователя они недоступны.

Второй параметр решает вопрос последствий. По умолчанию (stop) убийство любого процесса службы останавливает её целиком. Значение continue оставляет службу работать: это уместно для служб с пулом рабочих процессов, где потеря одного не фатальна.

Где ставится. В секции [Service].

Значения

ЗначениеЧто происходит
OOMScoreAdjust=-500убивать в числе последних; требует прав.
OOMScoreAdjust=800убивать в первую очередь: для необязательных задач.
OOMPolicy=stopпо умолчанию: остановить службу.
OOMPolicy=continueпродолжить работу, потеряв убитый процесс.

Пример

База данных, которую нежелательно убивать первой.

[Service]
OOMScoreAdjust=-500
OOMPolicy=stop
MemoryMax=4G

Это не защита от нехватки памяти, а расстановка приоритетов. Настоящее решение — предел памяти и разбор потребления.

Типичные ошибки

Отрицательные значения требуют прав: в службе без них получите код 206/OOM_ADJUST.

Параметр не защищает от убийства при упоре в собственный MemoryMax=: там жертва определена заранее.

OOMPolicy=continue может оставить службу в неработоспособном состоянии — «работает, но без части процессов».

Связанные ошибки

  • status=206/OOM_ADJUST в systemdКод 206/OOM_ADJUST: не удалось изменить оценку OOM для процесса службы. Обычно мешают права или значение вне диапазона.
  • Failed with result 'oom-kill'Состояние oom-kill: процесс службы убит из-за нехватки памяти. Как понять, упёрлись в предел службы или в память машины.
  • signal=KILL (status=9/KILL) в systemdПроцесс службы убит сигналом KILL. Кто мог его послать: OOM-killer, таймаут остановки systemd, администратор.

Рядом стоящие параметры

Где важен на практике

Источники

  • systemd.exec(5) официальная документация
    сверено 15 сентября 2026
  • systemd.service(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026