#nginx #reverse-proxy #tornado #nginx-reverse-proxy
#nginx #обратный прокси #торнадо #nginx-reverse-proxy
Вопрос:
у меня возникли проблемы с nginx в качестве обратного прокси-сервера для экземпляров tornado (сервер python).
У нас есть 3 сервера (циклический перебор dns) с одинаковой конфигурацией, и проблема возникает только на одном, несколько раз в день. Это кажется случайным.
Проблема заключается в очень медленном времени отклика (от 2,3 с до 2 минут!) на запросы о передаче через прокси. Большинство запросов получают ответ в течение одной секунды.
У нас есть задание cron, которое «пингует» этот сервер каждую минуту. Пинги ICMP всегда в порядке, получение статических ресурсов всегда в порядке, но у нас есть 5-50 запросов в день к tornado через nginx, которые действительно медленные. Nginx находится перед 8 экземплярами серверов tornado с базой данных mongo. Каждый сервер nginx получает 100-200 запросов в минуту.
При просмотре журналов приложений время отклика на стороне tornado никогда не превышает одной секунды, проблема, похоже, действительно связана с интерфейсом nginx-tornado.
Мониторинг системы (диска, памяти, процессора) всегда в порядке и использует <30%. На сервере размещены nginx, tornado и mongodb, а также 32 ГБ оперативной памяти с 8 потоками. Под Ubuntu 18LTS.
Я опубликую конфигурацию nginx, которую мне нужно анонимизировать, у нас есть только доступная на сайте конфигурация, которая не является сумасшедшей.
Как я могу продолжить диагностику? Я думаю, что где-то есть скопление / очередь запросов.
некоторая информация:
# ss -lt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:8002 0.0.0.0:*
LISTEN 0 128 0.0.0.0:8003 0.0.0.0:*
LISTEN 0 128 0.0.0.0:8004 0.0.0.0:*
LISTEN 0 128 0.0.0.0:8005 0.0.0.0:*
LISTEN 0 128 0.0.0.0:8006 0.0.0.0:*
LISTEN 0 128 0.0.0.0:8007 0.0.0.0:*
....
~# netstat -s | grep -i LISTEN
2129596 times the listen queue of a socket overflowed
2138743 SYNs to LISTEN sockets dropped
И с каждым днем их количество увеличивается.
Есть какие-нибудь идеи о том, в чем проблема и как ее решить? Спасибо!!
Комментарии:
1. Обратный прокси-сервер Nginx действительно печально известен своей медлительностью. Он потребляет много ресурсов процессора, я надеюсь, вы сможете найти решение этой проблемы.