it-swarm-ru.tech

Как я могу увеличить лимит открытых файлов для всех процессов?

Я могу использовать ulimit, но думаю, что это влияет только на мой сеанс Shell. Я хочу увеличить лимит для всех процессов. Это на Red Hat.

34
user5554

В ответе Джастина рассказывается, как увеличить количество доступных открытых файлов всего для всей системы. Но я думаю, что вы спрашиваете, как повысить лимит для каждого пользователя в глобальном масштабе. Ответ заключается в том, чтобы добавить следующие строки в /etc/security/limits.conf:

*               soft    nofile            2048
*               hard    nofile            2048

(Где * означает всех пользователей.)

В этом файле и в man limits.conf есть краткая документация. Это реализуется через модуль pam_limits.so, который вызывается для различных служб, настроенных в /etc/pam.d/.

И, я должен признать, у меня есть не знаю откуда взято 1024 по умолчанию. И поверь мне, я посмотрел. Я даже пытался без настроенного модуля pam_limits, и он все еще там. Это должно быть где-то жестко, но я не совсем уверен, где.

27
mattdm

Увеличить максимальное количество открытых файлов в 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
14
minhas23

Согласно статье Linux увеличивает максимальное количество открытых файлов/файловых дескрипторов (FD) , вы можете увеличить лимит открытых файлов, добавив запись в /etc/sysctl.conf.

Добавьте директиву config следующим образом:

fs.file-max = 100000

Затем сохраните и закройте файл. Чтобы изменения вступили в силу, пользователям необходимо выйти и снова войти в систему, или они могут просто ввести следующую команду:

# sysctl -p

Вы также можете проверить свои настройки с помощью команды:

# cat /proc/sys/fs/file-max
14
Justin Ethier

Но если вы пытаетесь увеличить максимальное количество открытых файлов службы , например 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

8
Matheus Baldasso

За дополнительную плату:

Вы можете найти конфигурацию в другом месте: /etc/security/limits.d/*.conf

Я должен был изменить это. Это не сработало без этого. Формат такой же, как для limits.conf

3
Waldemar Wosiński