Слишком много открытых файлов в 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 обычно достаточно высок, чтобы срабатывать только тогда, когда возникает серьезная проблема с приложениями.