Эта статья , я думаю, решает вашу проблему.
В основном вы должны использовать команду ulimit для увеличения доступных ресурсов.
Например:
Используйте следующую команду для отображения максимального числа дескрипторов открытых файлов:
cat /proc/sys/fs/file-max
Чтобы увидеть жесткие и мягкие значения, введите команду следующим образом:
# ulimit -Hn
# ulimit -Sn
Чтобы увидеть жесткие и программные значения для пользователя httpd или oracle, введите следующую команду:
# su - username
Чтобы зафиксировать максимальное количество файлов, вы можете увеличить максимальное количество открытых файлов, установив новое значение в переменной ядра / proc / sys / fs / file-max следующим образом (войдите в систему как root):
# sysctl -w fs.file-max=100000
Выше команды форсирует ограничение до 100000 файлов. Вам нужно отредактировать /etc/sysctl.conf
файл и поставить следующую строку, чтобы после перезагрузки настройка оставалась как есть. Для этого добавьте директиву config следующим образом:
fs.file-max = 100000
Сохраните и закройте файл. Чтобы изменения вступили в силу, пользователям необходимо выйти и снова войти в систему или просто введите следующую команду:
# sysctl -p
Проверьте настройки с помощью команды:
# cat /proc/sys/fs/file-max
или:
# sysctl fs.file-max
Вышеуказанная процедура устанавливает ограничения для файловых дескрипторов системы (FD), однако вы можете ограничить httpd
(или любых других пользователей) пользователей определенными ограничениями, отредактировав /etc/security/limits.conf
файл путем редактирования /etc/security/limits.conf
и установив ограничения следующим образом:
httpd soft nofile 4096
httpd hard nofile 10240
Затем проверьте их по:
# su - httpd
$ ulimit -Hn
$ ulimit -Sn
Если у вас есть проблема в других дистрибутивах Linux, проверьте /etc/pam.d/login
и убедитесь, что у вас pam_limits.so
включено, например
session required pam_limits.so