Ubuntu сбрасывает fs.inotify.max_user_watches – как заставить его перестать вмешиваться в это?

Вопрос или проблема

У меня в файле /etc/sysctl.conf установлен fs.inotify.max_user_watches=524288

Тем не менее, после каждого обновления дистрибутива, и время от времени, мне приходится выполнять “sudo sysctl -p”

  • Почему это значение не сохраняется постоянно? И время от времени снижается до 64k?

Многие системные конфигурационные файлы мигрируют в директории именно по этой причине, и это касается sysctl. Вместо редактирования существующего файла, который будет заменен при обновлении, создайте новый файл в /etc/sysctl.d/

Вероятно, эта настройка уже установлена в /etc/sysctl.d/30-nepomuk-inotify-limit.conf, поэтому вам следует создать файл с именем более высокого приоритета (31? 99?), чтобы он перезаписал существующее значение. (Так что, возможно, используйте 99-local.conf)

(Примечание: файл README.sysctl в этой директории говорит, что имя файла не имеет значения, но в случае таких коллизий это не совсем так. Я считаю это упущение ошибкой в README.)

Ответ или решение

Решение проблемы с fs.inotify.max_user_watches в Ubuntu

Если вы сталкиваетесь с проблемами сохранения параметра fs.inotify.max_user_watches, который вы установили на значение 524288, и замечаете, что с каждой обновлением дистрибутива или время от времени он сбрасывается, данная инструкция поможет вам решить эту проблему.

Причины сброса настройки

Параметр fs.inotify.max_user_watches отвечает за максимальное количество наблюдателей файловой системы, которые могут быть установлены для пользователя. Конфигурация данного параметра может сбрасываться по нескольким причинам:

  1. Изменения в системе: При обновлении дистрибутива Ubuntu могут быть заменены файлы конфигурации, включая те, которые касаются sysctl. Такие изменения могут привести к возврату к значениям по умолчанию.

  2. Конфликты конфигурационных файлов: Ваша настройка в /etc/sysctl.conf может конфликтовать с другими конфигурациями, которые располагаются в директории /etc/sysctl.d/. Например, изначальные конфигурации могут задавать это значение в файле, таком как /etc/sysctl.d/30-nepomuk-inotify-limit.conf.

Как сделать настройку постоянной

Для того чтобы обеспечивать постоянное сохранение значения fs.inotify.max_user_watches, рекомендуется использовать следующий подход:

  1. Создание нового конфигурационного файла: Вместо редактирования /etc/sysctl.conf, создайте новый файл в директории /etc/sysctl.d/. Это обеспечит, что ваша настройка не будет перезаписана при обновлениях дистрибутива.

    • Вы можете создать файл с именем, например, 99-local.conf:

      sudo nano /etc/sysctl.d/99-local.conf
  2. Добавление параметра в файл: В открывшемся файл вставьте строку:

    fs.inotify.max_user_watches=524288
  3. Применение изменений: После сохранения файла, примените изменения с помощью следующей команды:

    sudo sysctl --system

Почему это работает?

Создание нового конфигурационного файла в /etc/sysctl.d/ гарантирует, что ваше значение будет иметь более высокий приоритет, чем вероятные конфликты с настройками, определенными в других конфигурационных файлах. Настройки в данной директории обрабатываются в алфавитном порядке, и если у вас есть файл 99-local.conf, он будет загружен после других файлов, что позволяет перезаписывать предыдущие настройки.

Заключение

Данное решение обеспечит сохранность вашего параметра fs.inotify.max_user_watches на заданном уровне, даже после обновления системы. Создание отдельного конфигурационного файла в /etc/sysctl.d/ — это лучший способ управления системными параметрами, поскольку это облегчает дальнейшую поддержку и тестирование изменений. Если вы будете следовать этим шагам, проблема со сбросом данных должна исчезнуть.

Оцените материал
Добавить комментарий

Капча загружается...