Re: замедление работы

Maxim Dounin mdounin at mdounin.ru
Thu May 14 16:05:10 UTC 2015


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