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

max файловые дескрипторы с nginx и IM erlang сервером

Я использую nginx для обслуживания статических файлов и в качестве прокси для сервера обмена сообщениями Erlang. Каждый пользователь использует два HTTP-соединения с длительным опросом. ОС - это сервер ubuntu.

В часы пик я вижу:

> sudo more /proc/sys/fs/file-nr
1024 0 38001

В обычные часы количество файловых дескрипторов опускается ниже 1024, но никогда не превышает 1024. Пользователи сообщают о потерянных соединениях, когда я превышаю предел в 1024.

Почему я ограничен 1024 файловыми дескрипторами, хотя у каждого пользователя root (erlang), пользователя www-data (nginx) и открытых TCP-соединений меньше 1024? Есть ли какое-то глобальное ограничение в 1024?

Нужно ли мне использовать worker_rlimit_nofile с nginx или достаточно увеличить nofile в limits.conf для всех пользователей?

Спасибо

Дополнительная информация, которая может быть актуальной:

> sudo nano /etc/security/limits.conf
...
root           hard    nofile          30000
root           soft    nofile          30000

> sudo sysctl fs.file-max
fs.file-max = 38001

> ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 4160
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4160
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Другой пользователь, помимо root, скорее всего, достиг вашего предела дескриптора файла.

Попробуйте переключиться /etc/security/limits.conf к

...
*           hard    nofile          30000
*           soft    nofile          30000

Таким образом, у каждого пользователя будет верхний предел 30000.