Как настроить автоматическое масштабирование памяти на Amazon EC2? - PullRequest
4 голосов
/ 08 июня 2010

Я развертываю приложение rails на экземплярах EC2, где я хочу настроить автоматическое масштабирование для использования с Elastic Load Balancer. На определенном пороге я хочу создать новый экземпляр. При настройке триггера для группы автоматического масштабирования у нас есть опции для загрузки процессора, сети или дискового ввода-вывода; но, будучи приложением rails, я столкнусь с нехваткой ресурсов памяти, а не процессора или ввода-вывода.

Кто-нибудь успешно настроил автоматическое масштабирование EC2 для приложения рельсов? Каков предпочтительный способ использования AWS с рельсами?

К вашему сведению: я использую пассажир в качестве сервера приложений.

Спасибо за ваше время.

Ответы [ 3 ]

1 голос
/ 29 мая 2013

Я сделал это не с Rails, а с java в Tomcat. Мы использовали клапаны / скрипты tomcat, чтобы определить использование памяти и опубликовать ее в Amazon cloudWatch в качестве пользовательских метрик наблюдения за облаком.Вы можете создать триггер горизонтального масштабирования на основе мониторинга метрики в облачных часах.

Некоторые секции описанной выше техники могут даже перекрываться для рельсов.

1 голос
/ 30 октября 2013

На самом деле, я думаю, вы должны попытаться настроить свою конфигурацию Пассажира на основе типа используемого вами экземпляра (вот статья об этом: http://blog.scoutapp.com/articles/2009/12/08/production-rails-tuning-with-passenger-passengermaxprocesses). Это должно гарантировать, что при полной загрузке вы используете всю оперативную памятьдоступно, но вы не порождаете больше экземпляров пассажиров, чем доступно ОЗУ.

По моему опыту, это приводит к насыщению всех ресурсов (ЦП и ОЗУ), и вы можете инициировать политику автоматического масштабирования, основанную на использовании ЦП.отрегулируйте тип экземпляра для достижения максимальной производительности (я использовал экземпляр cc1.xlarge с большим успехом).

Если вы настроили автоматическое масштабирование на основе ОЗУ, вы сможетесоздать метрику в CloudWatch, которая отслеживает использование ОЗУ и автомасштабирует с использованием этой метрики. Создание метрики - это просто публикация данных метрики через регулярные промежутки времени с помощью API CloudWatch (http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/CloudWatch/Metric.html).. Вы можете создать фоновую задачу рельсов, которая запускается каждую минутуи публикует метрические данные.

0 голосов
/ 09 декабря 2010

Я думаю, что вы можете использовать новую функцию сигнализации, отслеживать метрику памяти и запускать экземпляр, используя api:

http://aws.typepad.com/aws/2010/12/amazon-cloudwatch-alarms.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...