2012-09-18 4 views
2

Я новичок в Heroku и хотел бы иметь некоторое представление о том, как я могу оценить количество динамиков, которые могут потребоваться для приложения RoR (нужно указать номер для клиента) ,Советы по количеству динозавров

Приложение уже работает на бесплатном 1 dyno. Вот некоторые основные сведения о приложении:

  • App является главным база данных читает, очень мало пишет
  • Возможно, тяжелая DB нагрузки, с запросами, включающих вычисление расстояния (от лат длины, используя gmaps4rails)
  • От некоторые базовые тесты с WAPT (версия eval), похоже, что обычный запрос на поиск занимает минимум. ~ 1,3 с, сред. ~ 2 с, макс. 4-5s
  • Снова от тестирования WAPT, до 20 одновременно работающих пользователей и наблюдения журналов Heroku, кажется, я не буду видеть все запросы в очереди
  • Других запросов в основном статичных активы

Как я бы получил некоторое приблизительное представление о количестве необходимых динозавров, для обработки одновременных пользователей X или о том, сколько одновременных пользователей, с которыми может справиться один динамометр?

+0

Хм, вы попробовали на самом деле загрузить тестирование своей установки? Загрузите один динамик, посмотрите, когда он сломается. Запустите еще один, повторите. –

+0

Yup, как я уже упоминал, я использовал эти инструменты под названием WAPT для захвата пользовательского сеанса, а затем имитировал увеличение до 20 пользователей (это максимум, который даст мне версия eval). До 20 пользователей, 1 динамик кажется прекрасным. Думаю, мне придется найти другие способы/инструменты для имитации более высокой нагрузки. –

+0

О, извините, я не был знаком с инструментом. Вы можете попробовать переписывать журналы самостоятельно столько раз, сколько хотите. –

ответ

10

Обновление: Heroku изменил свою динамическую цену на распространение https://www.heroku.com/pricing, так что эта информация может не исправить больше.

В соответствии с этой статьей http://neilmiddleton-eu.herokuapp.com/getting-more-from-your-heroku-dynos/, если вы используете Unicorn, 1 dyno может обрабатывать 1 миллион запросов в день (100 мс на запрос). Поэтому, если вы размещаете все носители в S3, для просмотра на одной странице требуется 3 запроса (1 html, 1-канальный css, 1-канальный javascript), 1 dyno может обрабатывать примерно 300 000 просмотров страниц в день или 80 просмотров страниц в секунду с Unicorn.

Предположим, что 1 пользователь просмотрит 1 страницу за 5 секунд, и ваше приложение сможет ответить в 300 мс, технически вы будете иметь примерно 400 одновременных пользователей с 1 дино.

Но на самом деле наше приложение (довольно тяжелое), 1 dyno может принимать только 1/10 из них, около 50 одновременно работающих пользователей.

Надеюсь, это поможет вам!

+0

Когда вы говорите 1 дино, вы говорите об одном 1 дино (свободный динамо) или 1 дополнительный дино? Имея только 1 динамо, dyno выключает afer 1 час бездействия и затем должен загружаться по первому запросу. –

+0

При правильном использовании новой реликвии для проверки сайта часто вам не нужно беспокоиться о выключении. Этот пример сайта использует только 1 дино (бесплатно), и он живет 24 часа [Планирование покера] (http://poker.forexp.net) – jwall

+0

Ах, это умно, спасибо –

Смежные вопросы