Предыдущая конфигурация: * [nginx][nginx] (главный proxy), который раздает трафик в * [haproxy][haproxy] (ради возможности балансировать по нагрузке), который распределяет нагрузку по нескольким webapp-серверам * с 16-ю [mongrelами][mongrel] на каждом Проблемы: 1. "Утекающая" память, периодический out of memory на серверах, лечится только перезапуском [mongrelов][mongrel]. 2. Запросы, занимающие десятки секунд из-за неверной балансировки (в нагруженный [mongrel][mongrel] все-таки попадает несколько "тяжелых" запросов). 3. Сложность управления кластером монгрелов - постоянные проблемы при перезапуске, "не стартующие" [mongrelы][mongrel] и т.п. Новая конфигурация: * [nginx][nginx] (proxy) остался * [Phusion Passenger][passenger] + [Ruby Enterprise Edition][ree] на каждой машине. Результат: webapp01-passenger-mongrel Комментарий: переход на [Phusion Passenger][passenger] на Week 39, объем занятой памяти - это белая область на графике, растущая сверху вниз. До перехода на Passenger объем свободной памяти стремительно уменьшался, иногда доходя до нуля, после перехода остается более-менее стабильным. Использование CPU осталось на прежнем уровне (как и ожидалось). После перехода исчезли запросы, которые по непонятным причинам занимали десятки секунд - время выполнения коррелирует со сложностью запроса. Так что если вы еще не переключились, мы идем к вам :) P.S. Отдельное спасибо [glebpom](http://github.com/glebpom) за подсказку. [passenger]: http://www.modrails.com/ [ree]: http://www.rubyenterpriseedition.com/ [mongrel]: http://mongrel.rubyforge.org/ [nginx]: http://sysoev.ru/nginx/ [haproxy]: http://haproxy.1wt.eu/