Должен ли я использовать тонкий или единорог на Heroku Cedar

Недавно я «обновил» свое приложение до кедровой платформы на Heroku. По умолчанию я использую thin в качестве веб-сервера. Но у меня всегда было искушение использовать unicorn для параллелизма и того, чтобы мой динамометрический доллар ушел в отцы. Но я беспокоюсь, что есть некоторые ошибки при использовании чего-то другого, кроме Thin.

У кого-нибудь есть реальный опыт такого решения?


Примечания:

  • Это была статья, которая вдохновила меня на эту идею: -new-celadon-cedar-stack/" rel="nofollow noreferrer">http://michaelvanrooijen.com/articles/2011/06/01-more-concurrency-on-a-single-heroku-dyno-with-the -new-celadon-cedar-stack/
  • Я знаю, что все приложения разные, и что вы должны создать промежуточную среду и попробовать ее сами. Но если это выглядит великолепно в вашей тестовой среде, есть ли какие-то подводные камни, о которых нам следует знать?

Я хочу знать причины, почему все не должны этого делать


person Jonathan    schedule 20.03.2012    source источник
comment
это хорошая статья. Спасибо, что поделился   -  person Andrew    schedule 22.06.2012


Ответы (4)


Обновление - 3 месяца спустя.

Использую unicorn в продакшне уже 3 месяца, очень доволен. Я использую 4 рабочих-единорогов на динамометрический стенд.

Одна вещь, за которой вам нужно следить, — это потребление и утечка памяти. По сути, вместо того, чтобы иметь 512 МБ памяти на динамометрический стенд, у вас есть это, разделенное на количество рабочих-героев. Но не забывайте об этом — это здорово сэкономило средства.

person Jonathan    schedule 22.06.2012
comment
Спасибо, что поделились... Я оцениваю тот же ход и даже сделал несколько сравнительный анализ моего приложения. Определенно похоже, что единорог приведет к некоторой экономии средств. - person Ylan S; 22.08.2012
comment
Чтобы повысить ценность вашего ответа, включите инструкции или ссылки на инструкции по использованию Unicorn. Потому что я думаю, что я сделаю это! - person slothbear; 17.12.2012
comment
Знаете ли вы, есть ли какие-либо проблемы с использованием глобальных переменных (например, каждый работник сохраняет свои собственные глобальные переменные или они совместно используют/затирают одну и ту же глобальную область)? Это не распространенный шаблон в MVC, но мы используем его в некоторых местах. Спасибо! - person Brian Armstrong; 13.01.2013

Нет причин не делать этого - я с большим успехом использую Unicorn на Heroku.

person John Beynon    schedule 20.03.2012

Heroku только что написал сообщение об использовании Unicorn: https://blog.heroku.com/archives/2013/2/27/unicorn_rails

Я попробую это сейчас, кажется, это правильный путь, как для производительности, так и для экономии средств.

person Emmanuel    schedule 28.02.2013
comment
Ях. Вот почему Heroku теперь продвигает Unicorn: stackoverflow.com/a/19965981/1233555 - person ChrisPhoenix; 14.11.2013

Если вы используете Thin и ваш код не очищает запросы очень быстро, то у вас проблемы — поскольку Heroku использует случайную маршрутизацию, запросы будут накапливаться на заблокированном дино, даже если есть свободные дино. Использование Unicorn кажется лучше, если вы можете справиться с попаданием в память, потому что менее вероятно, что все ваши форки будут получать медленные запросы одновременно. Это не решает проблему случайной маршрутизации Heroku, но должно сильно помочь.

Ссылки и пояснения в этом ответе:

https://stackoverflow.com/a/19965981/1233555

person ChrisPhoenix    schedule 13.11.2013