Я могу использовать ulimit, но думаю, что это влияет только на мой сеанс оболочки. Я хочу увеличить лимит для всех процессов. Это на Red Hat.
Я могу использовать ulimit, но думаю, что это влияет только на мой сеанс оболочки. Я хочу увеличить лимит для всех процессов. Это на Red Hat.
Ответы:
В ответе Джастина рассказывается, как увеличить общее количество открытых файлов для всей системы. Но я думаю, что вы спрашиваете, как повысить лимит для каждого пользователя в глобальном масштабе. Ответ заключается в том, чтобы добавить следующие строки /etc/security/limits.conf
:
* soft nofile 2048
* hard nofile 2048
(Где * означает всех пользователей.)
В самом файле и в нем есть краткая документация man limits.conf
. Это реализуется через pam_limits.so
модуль, который вызывается для различных служб, настроенных в /etc/pam.d/
.
И, должен признать, я понятия не имею, откуда взялся этот дефолт 1024. И поверь мне, я посмотрел. Я даже пытался без настроенного модуля pam_limits, и он все еще там. Это должно быть где-то жестко, но я не совсем уверен, где.
Согласно статье « Увеличение максимального количества открытых файлов / файловых дескрипторов» (FD) в Linux , вы можете увеличить лимит открытых файлов, добавив запись в /etc/sysctl.conf
.
Добавьте директиву config следующим образом:
fs.file-max = 100000
Затем сохраните и закройте файл. Чтобы изменения вступили в силу, пользователям необходимо выйти и снова войти в систему, или они могут просто ввести следующую команду:
# sysctl -p
Вы также можете проверить свои настройки с помощью команды:
# cat /proc/sys/fs/file-max
Увеличьте максимальное количество открытых файлов в Linux
1. Шаг: откройте sysctl.conf
и добавьте эту строку fs.file-max = 65536
$ vi /etc/sysctl.conf
добавить новую строку и
fs.file-max = 65536
Сохранить и выйти.
2.Step:
$ 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 для процессов, запускаемых systemd в CentOS 7
systemd
наряду с его текущими изменениями растет в экосистеме Linux. Хотя я бы предложил отредактировать ответ cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/
и внести изменения в этот файл, а не в файл общесистемной службы, предоставляемый пакетом.
за дополнительную плату:
Вы можете найти конфигурацию в другом месте: /etc/security/limits.d/*.conf
Я должен был изменить это. Это не сработало без этого. Формат такой же, как дляlimits.conf