Hello!
On Thu, May 14, 2015 at 03:57:11PM +0300, denis wrote:
> Добрый день.
>
> Иногда приходится слышать (и видеть) - "поставили nginx, всё стало
> тормозить". Напрямую запросы быстрые, после включения nginx В режиме
> proxy_pass (статики тоже, ибо с другого сервера) - ощутимо медленнее, time
> curl подтверждает, например 5с против 0.3
>
> Как диагностировать такие случаи?
Если порядок проседания - 5 секунд против 0.3 ранее, то это
означает, что во что-то конкретно так упёрлись. Я бы при таких
цифрах - подозревал в первую очередь сеть, в частности - изменение
нагрузки на неё в связи с большим количеством соединений между
nginx'ом и бекендом, а именно:
- сокеты в TIME-WAIT, особенно частно это становится проблемой на
Linux'е; тюнить local portrage и tcp_tw_recycle, tcp_tw_reuse,
можно ещё включить keepalive к upstream'ам в nginx'е;
- statefull firewall между nginx'ом и бекендом, у которого
заканчиваются state'ы.
Ну и естественно в смысл посмотреть в логи nginx'а на предмет
ошибок/предупреждений, а равно посмотреть в очереди всех
учавствующих в процессе listen-сокетов ("netstat -Lan" на
BSD-системах, "ss -nlt" на Linux'е), оценить общее состоянии
системы с помощью стандартных инструментов (начиная от банального
"top"). Для дополнительной локализации проблемы также полезно
писать в логи различные времена, в частности
$upstream_response_time.
--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru