Экземпляры Appfog против памяти

Я разрабатываю API для Appfog и хочу знать, на чем сосредоточиться (больше памяти с одним экземпляром или несколько экземпляров с меньшим объемом памяти).

Appfog предоставляет вам бесплатно 2 ГБ ОЗУ и до 16 экземпляров, если каждый экземпляр получает 128 МБ ОЗУ.

В моем приложении используются PHP, MySql и Memcachier. Я хочу запустить его в ближайшее время и хочу знать, какая конфигурация лучше всего подходит для моего сервера.

В чем преимущество большего количества оперативной памяти или экземпляров?

Спасибо за помощь :)

С уважением, Джонни


person Johnny Ha    schedule 17.04.2013    source источник


Ответы (1)


Вам нужно столько экземпляров, сколько ваше приложение будет работать без нехватки памяти :). Больше экземпляров означает лучшую производительность и время безотказной работы. Однако, если экземпляру не хватает памяти, он будет закрыт, и ваше приложение будет работать с меньшим количеством экземпляров, пока все они не рухнут. Вы можете диагностировать эту проблему с помощью команд af apps и af logs <appname> --all. Если приложение регулярно работает на ‹ 100%, бюджет памяти экземпляра может быть слишком низким. При наличии отключенных экземпляров команда logs может выявить ошибки достижения предела памяти.

Рекомендации по использованию памяти

Вот несколько рекомендаций по использованию памяти для начала: Для стабильной работы Wordpress с несколькими установленными плагинами потребуется > 512 МБ. Для экономичных пользовательских PHP-приложений обычно достаточно 128 МБ, но это следует учитывать. Если приложение использует фреймворк, попробуйте 256 МБ. Эти ограничения памяти могут показаться высокими, но на самом деле это пиковое использование памяти, а не среднее использование.

Загрузить тест

Нагрузочное тестирование с использованием Seige может помочь найти баланс между памятью и экземпляром. Он делает это, определяя, превышает ли ваше приложение лимит памяти. Масштабируйте приложение до 1 экземпляра и используйте 5, 10 и 15 одновременных подключений, постепенно увеличивая их на 5, пока приложение не упадет. Если приложение останавливается, увеличьте память и повторите попытку.

person Tim Santeford    schedule 17.04.2013
comment
Спасибо за ваши ответы, прямо сейчас у меня есть два экземпляра, и использование памяти составляет 63,20 МБ из 128 МБ и нет 0% ЦП. Возможно, я попытаюсь провести нагрузочный тест, когда у меня будет время, и увеличить использование памяти до 256 МБ для каждого экземпляра. Говорил об этом с несколькими коллегами, и они, наверное, подумали, что чем больше экземпляров, тем лучше. - person Johnny Ha; 26.04.2013
comment
Команда af stats ‹appname› дает вам только снимок и может не отображать колебания. Я бы загрузил приложение и проверил статистику AF, чтобы найти пиковую память. Смотрите мой обновленный ответ о нагрузочном тестировании. - person Tim Santeford; 26.04.2013