<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Блог Андрея Смирнова (passenger)</title><link>http://www.smira.ru/</link><description></description><language>ru</language><lastBuildDate>Sun, 11 Jan 2015 19:24:30 GMT</lastBuildDate><generator>http://getnikola.com/</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Mongrel vs. Phusion Passenger: выбор очевиден</title><link>http://www.smira.ru/posts/20091005mongrel-vs-phusion-passenger-obvious-choice.html</link><dc:creator>Andrey</dc:creator><description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;Предыдущая конфигурация:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sysoev.ru/nginx/"&gt;nginx&lt;/a&gt; (главный proxy), который раздает трафик в&lt;/li&gt;
&lt;li&gt;&lt;a href="http://haproxy.1wt.eu/&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html"&gt;haproxy&lt;/a&gt; (ради возможности балансировать по нагрузке), который распределяет нагрузку по нескольким webapp-серверам&lt;/li&gt;
&lt;li&gt;с 16-ю &lt;a href="http://mongrel.rubyforge.org/"&gt;mongrelами&lt;/a&gt; на каждом&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Проблемы:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;"Утекающая" память, периодический out of memory на серверах, лечится только перезапуском &lt;a href="http://mongrel.rubyforge.org/"&gt;mongrelов&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Запросы, занимающие десятки секунд из-за неверной балансировки (в нагруженный &lt;a href="http://mongrel.rubyforge.org/"&gt;mongrel&lt;/a&gt; все-таки попадает несколько "тяжелых" запросов).&lt;/li&gt;
&lt;li&gt;Сложность управления кластером монгрелов - постоянные проблемы при перезапуске, "не стартующие" &lt;a href="http://mongrel.rubyforge.org/"&gt;mongrelы&lt;/a&gt; и т.п.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Новая конфигурация:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://sysoev.ru/nginx/"&gt;nginx&lt;/a&gt; (proxy) остался&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.modrails.com/"&gt;Phusion Passenger&lt;/a&gt; + &lt;a href="http://www.rubyenterpriseedition.com/"&gt;Ruby Enterprise Edition&lt;/a&gt; на каждой машине.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Результат:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.smira.ru/wp-content/uploads/2009/10/webapp01-passenger-mongrel.png" alt="webapp01-passenger-mongrel" title="webapp01-passenger-mongrel" width="603" height="250" class="aligncenter size-full wp-image-508"&gt;&lt;/p&gt;
&lt;p&gt;Комментарий: переход на &lt;a href="http://www.modrails.com/"&gt;Phusion Passenger&lt;/a&gt; на Week 39, объем занятой памяти - это белая область на графике, растущая сверху вниз. До перехода на Passenger объем свободной памяти стремительно уменьшался, иногда доходя до нуля, после перехода остается более-менее стабильным. Использование CPU осталось на прежнем уровне (как и ожидалось).&lt;/p&gt;
&lt;p&gt;После перехода исчезли запросы, которые по непонятным причинам занимали десятки секунд - время выполнения коррелирует со сложностью запроса.&lt;/p&gt;
&lt;p&gt;Так что если вы еще не переключились, мы идем к вам :)&lt;/p&gt;
&lt;p&gt;P.S. Отдельное спасибо &lt;a href="http://github.com/glebpom"&gt;glebpom&lt;/a&gt; за подсказку.&lt;/p&gt;</description><category>Qik</category><category>Ruby on Rails</category><category>mongrel</category><category>passenger</category><category>phusion</category><category>rails</category><category>ruby</category><guid>http://www.smira.ru/posts/20091005mongrel-vs-phusion-passenger-obvious-choice.html</guid><pubDate>Mon, 05 Oct 2009 18:41:00 GMT</pubDate></item></channel></rss>