SystemdDoctor
мешает работе загрузка ядро настройки

systemd-sysctl: Couldn't write sysctl setting

Настройки ядра применяются при загрузке отдельной службой. Её тихий отказ означает, что система работает с настройками по умолчанию, а не с вашими — и обнаруживается это обычно под нагрузкой, когда пределы оказываются не теми.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Параметра нет в этом ядре

    Часть параметров появляется и исчезает между версиями ядра. Попытка записи в отсутствующий параметр отказывает.

  2. Модуль, создающий параметр, не загружен

    Параметры подсистем появляются вместе с модулями. При применении настроек до загрузки модуля параметра ещё нет.

  3. Настройка переопределена другим файлом

    Описания читаются из нескольких каталогов по приоритету. Ваше значение может быть перекрыто.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Какие настройки ядра не применились.

journalctl -u systemd-sysctl -b --no-pager

Итоговый набор настроек со всеми переопределениями.

sudo systemd-analyze cat-config sysctl.d | head -40

Применение настроек вручную с выводом ошибок.

sudo sysctl --system 2>&1 | tail -20

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Параметра нет в этом ядре
Почему происходит
Часть параметров появляется и исчезает между версиями ядра. Попытка записи в отсутствующий параметр отказывает.
Как проверить
Посмотрите сообщение и наличие параметра.
journalctl -u systemd-sysctl -b --no-pager | tail -10
sysctl net.ipv4.tcp_tw_recycle 2>&1 | head -2
Как исправить
Уберите устаревший параметр из описаний. Список доступных параметров зависит от версии и сборки ядра.
2. Модуль, создающий параметр, не загружен
Почему происходит
Параметры подсистем появляются вместе с модулями. При применении настроек до загрузки модуля параметра ещё нет.
Как проверить
Посмотрите модуль и параметр.
lsmod | grep -w nf_conntrack; sysctl net.netfilter.nf_conntrack_max 2>&1 | head -2
Как исправить
Обеспечьте загрузку модуля до применения настроек через описание загрузки модулей. Тогда параметр будет существовать к нужному моменту.
3. Настройка переопределена другим файлом
Почему происходит
Описания читаются из нескольких каталогов по приоритету. Ваше значение может быть перекрыто.
Как проверить
Посмотрите итоговый набор и источник значения.
sudo systemd-analyze cat-config sysctl.d 2>/dev/null | grep -n "somaxconn"
sysctl net.core.somaxconn
Как исправить
Задайте значение файлом с большим приоритетом в каталоге настроек администратора и проверьте итоговое значение после загрузки.

Пример вывода

Параметра нет в текущем ядре. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

systemd-sysctl[620]: Couldn't write '1' to 'net/ipv4/tcp_tw_recycle', ignoring: No such file or directory
systemd-sysctl[620]: Couldn't write '65535' to 'net/netfilter/nf_conntrack_max', ignoring: No such file or directory
systemd[1]: Finished systemd-sysctl.service - Apply Kernel Variables.

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

Источники

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