Відповіді:
Відповідь Джастіна розповідає, як збільшити кількість відкритих файлів, доступних у цілому, для всієї системи. Але я думаю, ви запитуєте, як підвищити ліміт на кожного користувача у всьому світі. Відповідь на це - додати наступні рядки до /etc/security/limits.conf
:
* soft nofile 2048
* hard nofile 2048
(Де * означає всіх користувачів.)
У цьому файлі і в цьому файлі є деяка зведена документація man limits.conf
. Це реалізується через pam_limits.so
модуль, який викликається для різних служб, налаштованих в /etc/pam.d/
.
І, маю визнати, я не маю уявлення, звідки береться той 1024 за замовчуванням. І повірте, я подивився. Я навіть спробував без налаштованого модуля pam_limits, і він все ще є. Це десь має бути жорстко закодованим, але я не точно знаю, де.
Відповідно до статті Linux Збільшення максимальної кількості відкритих файлів / дескрипторів файлів (FD) , ви можете збільшити ліміт відкритих файлів, додавши запис до /etc/sysctl.conf
.
Додайте конфігураційну директиву так:
fs.file-max = 100000
Потім збережіть і закрийте файл. Користувачам потрібно вийти та знову увійти, щоб зміни набрали чинності, або вони можуть просто ввести таку команду:
# sysctl -p
Ви також можете перевірити свої настройки за допомогою команди:
# cat /proc/sys/fs/file-max
Збільшити максимальну кількість ulimit відкритого файлу в Linux
1.Крок: відкрийте sysctl.conf
і додайте цей рядок fs.file-max = 65536
$ vi /etc/sysctl.conf
додати новий рядок і
fs.file-max = 65536
зберегти та вийти.
2.Крок:
$ vi /etc/security/limits.conf
і додайте нижче згаданого
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
збереження та вихід перевірити максимально відкритий файл ulimit
# ulimit -a
....
open files (-n) 65535
Але якщо ви намагаєтеся збільшити максимальну кількість відкритих файлів такої служби, як MariaDB або щось інше (використовуючи systemd ), вам доведеться це зробити безпосередньо у файлі .service
/lib/systemd/system/<servicename>.service
Буде щось подібне:
[Unit]
Description=Some Daemon
After=syslog.target network.target
[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon
[Install]
WantedBy=multi-user.target
Повна відповідь тут: збільшення nproc для процесів, запущених системою на CentOS 7
systemd
поряд із його постійними змінами зростає у всій екосистемі Linux. Хоча я б запропонував відредагувати відповідь cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/
та внести зміни до цього файлу, а не загальносистемний сервісний файл, який надається пакетом.
ДОСТАВКА:
Ви можете знайти конфігурацію в іншому місці: /etc/security/limits.d/*.conf
Мені довелося це модифікувати. Без нього не обійшлося. Формат такий же, як і дляlimits.conf