Mongrel vs. Phusion Passenger: выбор очевиден

Oct 05, 2009 22:41


Originally published at Блог Андрея Смирнова. Please leave any comments there.

Предыдущая конфигурация:
  • nginx (главный proxy), который раздает трафик в
  • haproxy (ради возможности балансировать по нагрузке), который распределяет нагрузку по нескольким webapp-серверам
  • с 16-ю mongrelами на каждом

Проблемы:
  1. «Утекающая» память, периодический out of memory на серверах, лечится только перезапуском mongrelов.
  2. Запросы, занимающие десятки секунд из-за неверной балансировки (в нагруженный mongrel все-таки попадает несколько «тяжелых» запросов).
  3. Сложность управления кластером монгрелов - постоянные проблемы при перезапуске, «не стартующие» mongrelы и т.п.

Новая конфигурация:

Результат:



Комментарий: переход на Phusion Passenger на Week 39, объем занятой памяти - это белая область на графике, растущая сверху вниз. До перехода на Passenger объем свободной памяти стремительно уменьшался, иногда доходя до нуля, после перехода остается более-менее стабильным. Использование CPU осталось на прежнем уровне (как и ожидалось).

После перехода исчезли запросы, которые по непонятным причинам занимали десятки секунд - время выполнения коррелирует со сложностью запроса.

Так что если вы еще не переключились, мы идем к вам

P.S. Отдельное спасибо glebpom за подсказку.

rails, ruby on rails, phusion, qik, mongrel, ruby, passenger

Previous post Next post
Up