It-e.RU
Цифровой двигатель вашего бизнеса.

NGINX: ошибка too many open files

NGINX: ошибка too many open files

NGINX: ошибка too many open files


Появились в логах ошибки:

[root ~]tail -f /etc/nginx/logs/error_log
2015/11/15 16:09:48 [crit] 18676#0: accept() failed (24: Too many open files)
2015/11/15 16:09:48 [crit] 18676#0: accept() failed (24: Too many open files)
2015/11/15 16:09:48 [crit] 18676#0: accept() failed (24: Too many open files)
2015/11/15 16:09:48 [crit] 18676#0: accept() failed (24: Too many open files)
2015/11/15 16:09:48 [crit] 18676#0: accept() failed (24: Too many open files)

Такие ошибки возникают на нагруженных веб-серверах, когда веб-сервер достигает предела количества открытых десткрипторов.

Исправим ситуацию, выполнив 2 простых шага:

Увеличим worker_rlimit_nofile - директива указывает сколько файловых дескрипторов будет использовать Nginx. На каждое соединение выделяется по два дексриптора: один для соединения с клиентом, а второй — для открытия файла. Поэтому worker_rlimit_nofile должно равняться удвоенному значению MaxClients. Значение MaxClients можно узнать и отредактировать с помощью команд:

ulimit -n 
ulimit -n 2048
worker_rlimit_nofile 4096;

Увеличим лимит открытых файлов на уровне системы. В файле /etc/sysctl.conf добавим:

   fs.file-max = 400000

Применим изменения:

   sysctl -p

Пожалуйста, уважайте труд автора, при копировании материалов сохраняйте ссылку на источник!

Комментарии (0)







Разрешённые теги: <b><i><br>Добавить новый комментарий: