LINUX.ORG.RU
ФорумAdmin

Too many open files

 ,


0

1

В Nginx и в других местах началось 24: Too many open files. Вроде прописал уже везде эти лимиты гребаные, сервер перезагрузил, что не хватает ещё?

/etc/security/limits.conf

* hard nofile 500000
* soft nofile 500000

root      hard    nofile      500000
root      soft    nofile      500000


ulimit -n
500000

lson -n | wc -l
80544 -- т.е. это общее кол-во открытых файлов? 


Открытых файлов 80544, лимит стоит 500000, что этому линуксу нужно ещё?

★★★

Запускается через какой-нибудь systemd, который не читает limits.conf ?

Ещё есть /proc/sys/fs/file-max

anonymous ()
Ответ на: комментарий от anonymous

Nginx запускается как обычно /etc/init.d/nginx start

cat /proc/sys/fs/file-max
999999

gobot ★★★ ()

don't use gnome-terminal

anonymous ()
Ответ на: комментарий от gobot

Возьми любой pid nginx и посмотри в /proc/<pid>/limits и убедись, что твои лимиты применились.

Если nginx работает в роли revese-proxy, то могли кончится сокеты (особенно если коннекты на localhost) - смотри в тот момент «netstat -tn | wc»

vel ★★★★★ ()
Ответ на: комментарий от vel

cat /proc/3462/limits
Max open files 1024 4096 files

Это что значит не применились?
Да, много конектов именно на 127.0.0.1, ещё заметил много соединений в режиме CLOSE_WAIT, точнее 3099, а в режиме ESTABLISHED 6555. Вообще сервер проксирует websocketы. Когда открываешь допустим 5 вкладок, смотрю 5 соединений в ESTABLISHED, потом закрываешь вкладки и уже 5 в CLOSE_WAIT. И висят они долго и жрут ресурсы! Как исправить?

gobot ★★★ ()
Ответ на: комментарий от gobot

Когда открываешь допустим 5 вкладок, смотрю 5 соединений в ESTABLISHED, потом закрываешь вкладки и уже 5 в CLOSE_WAIT.

Если не ошибаюсь, это keepalive держит соединение.

Вообще, у nginx есть возможность проксировать через unix socket.

iron ★★★★★ ()
Ответ на: комментарий от gobot

[qoute]Когда открываешь допустим 5 вкладок, смотрю 5 соединений в ESTABLISHED, потом закрываешь вкладки и уже 5 в CLOSE_WAIT. И висят они долго и жрут ресурсы! Как исправить? А не надо это исправлять. Это же пока не проблема.

про worker_rlimit_nofile в nginx.conf тебе уже подсказали.

vel ★★★★★ ()
Ответ на: комментарий от iron

С этим решил, в прокси было установлено
proxy_ignore_client_abort on

gobot ★★★ ()
Ответ на: комментарий от vel

Да, это прописал, пока соединений от Nginx 2989, не сильно много. Но проблема в другом уже, Nginx почему то иногда не проксирует установленные соединения на websocket сервер.

Открыл 5 вкладок, в netstat смотрю 5 ESTABLISHED от IP, все нормально, но соединений на ws 3 или 2 по разному. Т.е. клиент к nginx подключен на порт и все, дальше не идет ничего. В браузере написано pending, а должен быть 101 ответ(ws handshake). Иногда обновляешь вкладку по 5 раз срабатывает соединение.

В логах nginx отдает иногда 499 код, когда смотришь

tail -f /var/log/nginx/websocket.log  | grep IP


клиент разорвал подключение вероятно не дождавшись ответа от сервера

Не пойму кто что разорвал, если браузер подключен и есть соединение ESTABLISHED

gobot ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.