Слишком много открытых файлов в Nginx, достаточно ли установки worker_rlimit_nofile?
Устанавливает правильное значение worker_rlimit_nofile в nginx.conf достаточно решить вопрос Too many open files в nginx?
Или мне все еще нужно обновить sysctl.conf а также limits.conf?
2 ответа
В Linux вы можете увидеть, изменил ли этот параметр ограничения процесса, запустив:
cat /proc/<PID>/limits
куда <PID> это идентификатор процесса nginex. Тест на среду разработки.
Если этот параметр не изменяет ограничения или если у вас слишком жесткие ограничения, вам необходимо изменить nofile в файле /etc/security/limits.conf.
Я не думаю, что вам нужно изменить limit.conf. Задача worker_rlimit_nofile - предоставить быстрый и грязный способ сделать это через RLIMIT_NOFILE.
Тем не менее, существуют жесткие системные ограничения, установленные ОС, которые вам может потребоваться переопределить с помощью sysctl.conf.
На практике я обычно устанавливаю свой fs.file-max в sysctl равным примерно 4-кратному пределу для моих приложений. Нет никаких оснований для этого, кроме того, что я никогда не хочу, чтобы что-то потерпело неудачу из-за превышения этого предела. А диапазон 2-4X обычно достаточно высок, чтобы срабатывать только тогда, когда возникает серьезная проблема с приложениями.