У меня есть производственное приложение ruby sinatra, работающее на nginx / passenger, и я часто вижу, что запросы необъяснимо застопорились.Я написал скрипт для вызова статуса пассажира на моем кластере машин каждые десять секунд и отображал результаты на графике.Вот что я вижу:
Синяя линия показывает глобальную очередь, ожидающую пика до 60. Это среднее значение для 4 машин, поэтому, когда синяя линия достигает 60,это означает, что каждая машина доведена до максимума.У меня установлено значение passenger_max_pool_size, равное 20, поэтому он в 3 раза превышает максимальный размер пула, а затем, вероятно, отбрасывает последующие запросы.
Мое приложение зависит от двух ключевых внешних ресурсов - бэкэнда Amazon RDS mysql и экземпляра Redis.Возможно, один из них периодически становится медленным или не отвечает и, таким образом, вызывает такое поведение?
Может кто-нибудь посоветовать мне, как получить трассировку стека, чтобы увидеть, является ли узкое место здесь Amazon RDS, Redis или что-то еще?
Спасибо!