nginx_error._too_many_open_files
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| nginx_error._too_many_open_files [2016/11/05 20:04] – daniil | nginx_error._too_many_open_files [2016/11/06 11:28] (текущий) – [Описание] daniil | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Nginx Error. Too many open files ====== | ====== Nginx Error. Too many open files ====== | ||
| - | ===== Ошибка ===== | + | ===== Описание |
| В логе ошибок Nginx: | В логе ошибок Nginx: | ||
| < | < | ||
| ...socket() failed (24: Too many open files) while connecting to upstream..." | ...socket() failed (24: Too many open files) while connecting to upstream..." | ||
| </ | </ | ||
| + | |||
| + | Для одного соединения Nginx инициирует открытие как минимум двух потоков ввода-вывода. Каждому потоку присваивается файловый дескриптор. В операционной системе имеется ограничение на количество одновременно открытых потоков ввода-вывода для одного процесса. Упомянутая ошибка сообщает о том, что процессы Nginx достигли это ограничение. | ||
| ---- | ---- | ||
| Строка 51: | Строка 53: | ||
| Currently open files: 23 | Currently open files: 23 | ||
| </ | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Решение ===== | ||
| + | |||
| + | Если превышение лимита на количество открытых дескрипторов вызвано естественными факторами и его необходимо увеличить (а не искать причину), | ||
| + | |||
| + | * ограничение на количество открытых файловых дискрипторов для воркеров Nginx можно задавать через параметр **worker_rlimit_nofile** : | ||
| + | |||
| + | <code bash> | ||
| + | vim / | ||
| + | </ | ||
| + | |||
| + | <code nginx> | ||
| + | worker_rlimit_nofile 131072; | ||
| + | |||
| + | events { | ||
| + | ... | ||
| + | } | ||
| + | |||
| + | http { | ||
| + | ... | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | nginx -t | ||
| + | service nginx restart | ||
| + | </ | ||
| + | |||
| + | * изменение ограничения со стороны операционной системы: | ||
| + | |||
| + | <code bash> | ||
| + | vim / | ||
| + | </ | ||
| + | |||
| + | добавляем | ||
| + | |||
| + | < | ||
| + | * soft nofile 131072 | ||
| + | * hard nofile 131072 | ||
| + | </ | ||
| + | |||
| + | и выполняем | ||
| + | |||
| + | <code bash> | ||
| + | ulimit -n 131072 | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Источники ===== | ||
| + | |||
| + | * [[ http:// | ||
| + | * [[ https:// | ||
| + | * [[ https:// | ||
nginx_error._too_many_open_files.1478376265.txt.gz · Последнее изменение: (внешнее изменение)
