Ограничения настроены, но не применяются к демону

На моем CentOS 7 я использую cat / proc / / limits , чтобы увидеть установленный предел фактического топлива. Я получил подтверждение, что этот метод здесь полностью точен, потому что я использую его в MySQL, который не может выгружать конкретную базу данных с> 8000 таблиц в ней. Если с помощью prlimit я установил его на 10000, дамп завершится успешно.

Теперь я бы хотел избежать использования prlimit, поэтому я настроил файл /etc/security/limits.conf для соответствия мои потребности, и если я запустил bash с соответствующим пользователем (mysql), я смогу увидеть правильную настройку предельного значения при запуске ulimit -a .

Проблема в том, что процесс mysqld, запущенный пользователь mysql по-прежнему имеет значение по умолчанию (здесь 1024), что приводит к сбою при сбросе БД. Единственное решение, которое у меня есть, - запустить prlimit во время выполнения, но я хотел бы пояснить, чего не хватает, чтобы мои процессы соблюдали конфигурацию ограничений при запуске.

0
задан 29 December 2016 в 12:09
1 ответ

В конце концов, обнаружилась проблема: ограничения обрабатываются Systemd, мне пришлось создать файл /etc/systemd/system/mariadb.service.d/limits.conf с содержимым :

[Service] 
LimitNOFILE=10000

Итак, главное, что нужно помнить : systemd совсем не заботится о файлах /etc/security/limits*.

5
ответ дан 4 December 2019 в 11:26

Теги

Похожие вопросы