Ulimits игнорируются на openSUSE

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

Я на openSUSE Leap 15.6 x86_64, ядро 6.4.0-150600.23.25-default. Мой предел открытых файлов ulimit установлен очень низким – 1024. Хотя это никогда не было большой проблемой в системах на основе Debian, мне трудно понять, как на OpenSUSE увеличить его навсегда.
ulimit -Sn 10240
изменяет его временно, и я мог бы ввести его, вероятно, где-то в bashrc, но мне хотелось бы более чистого способа.
Я удивляюсь, почему это не работает:
/etc/security/limits.conf:

#<домен>      <тип>  <элемент>         <значение>
#
*               soft    nofile          65535
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20

Файл /etc/sysctl.conf и папка /etc/sysctl.d/ все закомментированы.
Файл /etc/pam.d/login содержит:
session include common-session
а /etc/pam.d/common-session содержит:
session required pam_limits.so

Несмотря на это, ограничения не применяются в соответствии с моими настройками или переопределены где-то еще. Аппаратный предел составляет 524288, так что он больше, чем указанные выше 65535.

Также:

 cat /proc/1/cmdline 
/usr/lib/systemd/systemd--switched-root--system--deserialize=32(base) n

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

Проблема с игнорированием ограничений ulimit на openSUSE может быть связана с особенностями конфигурации системы, особенно касающимися управления ресурсами через PAM (Pluggable Authentication Modules) и системные настройки. Давайте подробно рассмотрим шаги для постоянного изменения ограничения на количество открытых файлов.

Причины, по которым ограничения могут не применяться

  1. Конфигурация PAM: Вы правильно указали, что в файле /etc/pam.d/common-session присутствует строка session required pam_limits.so. Это позволяет PAM применять ограничения, указанные в /etc/security/limits.conf. Однако, если используется другой модуль для управления сессиями или аутентификацией, возможны конфликты.

  2. Системные службы: Если ваше приложение или служба запускается как системная служба (например, через systemd), настройки из /etc/security/limits.conf не будут применяться. Вместо этого нужно использовать конфигурацию unit-файлов systemd для настройки ограничений.

  3. Отсутствие настройки в /etc/security/limits.conf: Обратите внимание, что ваш файл limits.conf закомментирован (вы используете # перед строками). Это означает, что настройки в этом файле игнорируются. Убедитесь, что строки не закомментированы.

Корректные шаги для решения проблемы

  1. Редактирование /etc/security/limits.conf:
    Убедитесь, что у вас есть следующие строки без символов комментариев (#):

    *               soft    nofile          65535
    *               hard    nofile          65535

    Эти строки установят как «мягкие», так и «жесткие» ограничения на число открытых файлов.

  2. Настройка Service Unit файлов:
    Если ваша служба управляется systemd, выполните следующие шаги:

    • Откройте/создайте файл конфигурации для вашей службы в /etc/systemd/system/your-service.service.d/override.conf (где your-service — это имя вашей службы).
    • Добавьте следующую секцию Service, где установите необходимые ограничения:
      [Service]
      LimitNOFILE=65535
    • Сохраните файл и выполните команду:
      sudo systemctl daemon-reload
    • Затем перезапустите вашу службу:
      sudo systemctl restart your-service.service
  3. Проверка переменных окружения: Если вы хотите убедиться, что настройки применяются, выполните:

    ulimit -Sn
    ulimit -Hn

    Это покажет текущие «мягкие» и «жесткие» лимиты открытых файлов.

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

Вывод

Следуя указанным шагам, вы сможете установить постоянное ограничение на количество открытых файлов в openSUSE. Убедитесь, что все файлы и настройки правильно настроены, и учитывайте, что для системных служб могут потребоваться дополнительные настройки в unit-файлах systemd. Если вы еще продолжаете сталкиваться с проблемами, проверьте журналы системы для поиска любых сообщений об ошибках или несовпадениях в конфигурации.

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

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