status=245/KSM в systemd
Код 245/KSM относится к параметру MemoryKSM=, который включает для процессов службы объединение одинаковых страниц памяти. Отказ значит, что механизм недоступен: он отключён в ядре или не поддерживается на уровне процесса.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
KSM отключён в ядре
Объединение страниц управляется через sysfs и по умолчанию во многих сборках выключено.
-
Ядро не умеет управлять KSM на уровне процесса
Управление через prctl появилось в относительно новых ядрах. На старых включить объединение для отдельной службы нельзя.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Показывает шаг KSM и причину.
journalctl -xeu myapp.service --no-pager -n 20Подтверждает, что в вашей версии systemd этот номер означает именно KSM.
systemd-analyze exit-status 245Решение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Объединение страниц управляется через sysfs и по умолчанию во многих сборках выключено.
- Как проверить
-
Посмотрите состояние KSM.
cat /sys/kernel/mm/ksm/run 2>/dev/null || echo "KSM недоступен"
- Как исправить
-
Включите KSM в ядре либо уберите
MemoryKSM=yesиз unit-файла: параметр экономит память, но не обязателен для работы службы.
- Почему происходит
- Управление через prctl появилось в относительно новых ядрах. На старых включить объединение для отдельной службы нельзя.
- Как проверить
-
Посмотрите версию ядра и версию systemd.
uname -r systemctl --version | head -1
- Как исправить
- Уберите параметр для этого ядра.
Пример вывода
MemoryKSM=yes на ядре без поддержки объединения страниц. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× cache.service - In-memory cache
Active: failed (Result: exit-code) since Mon 2026-09-15 10:20:44 MSK; 1s ago
Process: 6400 ExecStart=/usr/local/bin/cache (code=exited, status=245/KSM)
systemd[6400]: cache.service: Failed at step KSM spawning /usr/local/bin/cache: Operation not supported
Связанные ошибки
- status=244/BPF в systemd Код 244/BPF: не удалось применить ограничения через BPF, например RestrictFileSystems=. В man-странице systemd этот код указан неверно.
- status=204/MEMORY в systemd Код 204/MEMORY: systemd не смог выделить память при подготовке запуска службы. Что проверять на машине и в unit-файле.
- status=242/NUMA_POLICY в systemd Код 242/NUMA_POLICY: не удалось применить политику размещения памяти NUMA из NUMAPolicy= и NUMAMask=.
- Cannot allocate memory в журнале службы Не удалось выделить память: предел службы, память машины, настройка overcommit, исчерпанные области отображения.
- Elasticsearch: служба падает из-за размера кучи JVM Размер кучи больше доступной памяти или больше предела службы: падение при старте или под нагрузкой.
- Failed with result 'oom-kill' Состояние oom-kill: процесс службы убит из-за нехватки памяти. Как понять, упёрлись в предел службы или в память машины.
- Hardware Error / EDAC: ошибки памяти в журнале Ядро сообщает об ошибках памяти. Что считать безобидным, а что поводом менять модуль.
- Java-служба: OutOfMemoryError и куча Служба на JVM падает с нехваткой памяти: размер кучи, предел контрольной группы, дампы кучи.
Источники
-
exit-status.h: EXIT_KSM = 245
В таблице man systemd.exec(5) этот код пока отсутствует. -
systemd.exec(5)
Параметр MemoryKSM= описан в разделе управления памятью. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
systemd-analyze exit-status на systemd 255 печатает KSM 245.