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

Другие вопросы по тегам