status=242/NUMA_POLICY в systemd
Код 242/NUMA_POLICY относится к машинам с несколькими узлами памяти. Он значит, что systemd не сумел применить политику NUMA: обычно в маске указаны узлы, которых нет, либо политика требует маски, а её не задали.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
В
NUMAMask=указаны несуществующие узлыНа машине с одним узлом памяти (а таковы почти все виртуальные серверы) маска с узлом 1 недопустима.
-
Политика задана без обязательной маски
Политики
bindиinterleaveтребуют указания узлов. Без маски применить их нельзя.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Показывает шаг NUMA_POLICY и причину.
journalctl -xeu myapp.service --no-pager -n 20Список узлов памяти машины: с ним сверяется маска.
numactl --hardwareРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
NUMAMask= указаны несуществующие узлы- Почему происходит
- На машине с одним узлом памяти (а таковы почти все виртуальные серверы) маска с узлом 1 недопустима.
- Как проверить
-
Посмотрите узлы памяти и значение маски.
systemctl show myapp.service -p NUMAPolicy -p NUMAMask numactl --hardware 2>/dev/null | head -5
- Как исправить
- Исправьте маску под фактические узлы или уберите оба параметра: на одноузловой машине политика NUMA бессмысленна.
- Почему происходит
- Политики
bindиinterleaveтребуют указания узлов. Без маски применить их нельзя.
- Как проверить
-
Проверьте, задана ли маска при такой политике.
systemctl show myapp.service -p NUMAPolicy -p NUMAMask
- Как исправить
-
Добавьте
NUMAMask=с нужными узлами или смените политику наdefault.
Пример вывода
Маска NUMA перенесена с двухузлового сервера на одноузловой. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× db.service - Database
Active: failed (Result: exit-code) since Mon 2026-09-15 09:20:14 MSK; 1s ago
Process: 4800 ExecStart=/usr/local/bin/db (code=exited, status=242/NUMA_POLICY)
systemd[4800]: db.service: Failed at step NUMA_POLICY spawning /usr/local/bin/db: Invalid argument
Связанные ошибки
- status=215/CPUAFFINITY в systemd Код 215/CPUAFFINITY: не удалось привязать процесс к перечисленным ядрам из CPUAffinity=. Обычно указаны несуществующие ядра.
- status=204/MEMORY в systemd Код 204/MEMORY: systemd не смог выделить память при подготовке запуска службы. Что проверять на машине и в unit-файле.
- status=245/KSM в systemd Код 245/KSM: не удалось включить объединение одинаковых страниц памяти через MemoryKSM=. Код появился в systemd 254.
- Cannot allocate memory в журнале службы Не удалось выделить память: предел службы, память машины, настройка overcommit, исчерпанные области отображения.
- Elasticsearch: служба падает из-за размера кучи JVM Размер кучи больше доступной памяти или больше предела службы: падение при старте или под нагрузкой.
- Failed with result 'oom-kill' Состояние oom-kill: процесс службы убит из-за нехватки памяти. Как понять, упёрлись в предел службы или в память машины.
- Hardware Error / EDAC: ошибки памяти в журнале Ядро сообщает об ошибках памяти. Что считать безобидным, а что поводом менять модуль.
- Java-служба: OutOfMemoryError и куча Служба на JVM падает с нехваткой памяти: размер кучи, предел контрольной группы, дампы кучи.
Где встречается чаще всего
Источники
-
systemd.exec(5)
242 EXIT_NUMA_POLICY: не удалось применить политику NUMA, см. NUMAPolicy= и NUMAMask=. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено с NUMAMask=0-1 на виртуальной машине с одним узлом.