Назад | Перейти на главную страницу

Nginx's Слишком много открытых файлов, достаточно ли настройки worker_rlimit_nofile?

Устанавливает правильное значение worker_rlimit_nofile в nginx.conf достаточно решить проблему Too many open files в nginx?

Или мне все еще нужно обновить sysctl.conf и limits.conf?

В Linux вы можете увидеть, изменил ли этот параметр ограничения процесса, запустив:

cat /proc/<PID>/limits

куда <PID> - это идентификатор процесса nginex. Протестируйте в среде разработки.

Если этот параметр не изменяет лимиты или если у вас слишком строгий жесткий лимит, вам необходимо изменить nofile в файле /etc/security/limits.conf.

Я не думаю, что вам нужно изменять limits.conf. Задача worker_rlimit_nofile - предоставить быстрый и грязный способ сделать это через RLIMIT_NOFILE.

Однако существуют жесткие системные ограничения, установленные ОС, которые вам может потребоваться изменить с помощью sysctl.conf.

На практике я обычно устанавливаю fs.file-max в sysctl примерно в 4 раза больше rlimit для моих приложений. Для этого нет никаких оснований, кроме того, что я никогда не хочу, чтобы что-то выходило из строя из-за превышения этого предела. А диапазон 2–4X обычно достаточно высок, чтобы срабатывать только при возникновении серьезных проблем с приложениями.