Уменьшить объем памяти Mongrel Rails и повысить производительность?

StackOverflow https://stackoverflow.com/questions/860018

Вопрос

На моих рельсовых сайтах работает Mongrel, у меня проблема с объемом используемой памяти.Мои процессы Ruby-bin используют около 66 МБ резидентной памяти.Как я могу уменьшить объем памяти, используемой рельсами?

Не очень экономично иметь множество серверов Rails, работающих на одной машине, если они потребляют память с такой скоростью.Мои процессы php5 fcgi занимают от 15 до 25 МБ.

Я совершенно незнаком с RoR. Поможет ли использование JRuby?Любые комментарии, полезные для уменьшения объема памяти и повышения производительности, более чем приветствуются.

Это было полезно?

Решение

Вы можете посмотреть Фьюжн Пассажир и Рубиновый выпуск Enterprise, что в настоящее время является стандартной настройкой де-факто для приложений Rails.Одна из его целей — сокращение использования памяти.Это также проще, чем иметь кучу дворняг.

Другие советы

Если вы не привязаны к Apache для чего-то еще, я бы также попробовал nginx с Phusion Passenger.Если вас беспокоит использование памяти, вы должны увидеть меньший объем памяти от nginx, чем от apache, и последняя версия Passenger загрузит, скомпилирует и установит nginx за вас с минимальной головной болью.

Вы также можете заменить свой дворняжный процесс на Тонкий который более эффективен и недавно был исправлен в его сборке мусора (через eventmachine), чтобы сделать его еще лучше.

Мы используем тонкий кластер за интерфейсами nginx и добиваемся хороших результатов.

Я бы не сказал, что Passenger является стандартом де-факто, но он набирает обороты.Мы только что перешли на Nginx+Passenger и наше Ruby-приложение (т.Монгрелы против.Пассажир) объем памяти снизился с 450 МБ до 295 МБ.Он может упасть меньше, так как Passenger уничтожит процессы, если они простаивают (это настраивается), но, конечно, если вы получаете трафик и он использует все экземпляры, для которых он настроен, тогда они будут соответственно использовать память. .

Обратите внимание, что мы пока не используем Ruby Enterprise Edition в нашей конфигурации (в основном потому, что он еще не доступен на Engine Yard), но мы все равно наблюдаем меньший объем памяти.Память была первоначальной основной причиной, по которой мы сделали переход, но есть и другие преимущества, такие как более быстрая и простая настройка для увеличения или уменьшения масштаба и так далее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top