Является ли Puma лучше, чем Unicorn для Ruby 1.9.3 и Rails 3.2?

Существует много разговоров о Пуме и о том, как это быстрее, чем Единорог. Но, они также отмечают, что он более подходит для примеров JRuby и Rubinius.

МОЙ вопрос: как насчет приложения Rails 3.2 с Ruby 1.9.3? Единорог или Пума?

Ответ 1

Существует отличная статья для единорога против puma

http://ylan.segal-family.com/blog/2013/05/20/unicorn-vs-puma-redux/

Unicorn - это HTTP-сервер Rack, который использует forked-процессы для одновременного обработки нескольких запросов .

  • Управление процессами: Единорог будет пожинать плоды и перезапускать работников, которые умирают из сломанных приложений. Нет необходимости управлять несколькими процессами или порты сами. Единорог может порождать и управлять любым количеством рабочих процессы, которые вы выбираете для масштабирования на ваш сервер.
  • Балансировка нагрузки полностью выполняется ядром операционной системы. Запросы никогда не накапливаются после занятого рабочего процесса.
  • Не имеет значения, является ли ваше приложение потокобезопасным или нет, все работники работать в пределах их собственного изолированного адресного пространства и обслуживать только один клиент за максимальную надежность.
  • Поддерживает все приложения Rack, а также версии Rack Ruby на Rails через упаковку Rack.
  • Встроенное повторное открытие всех файлов журналов в вашем приложении через USR1 сигнал. Это позволяет logrotate вращать файлы атомарно и быстро через rename вместо метода racy и slow copytruncate. единорог также принимает меры для обеспечения многострочных записей журнала с одного запроса все остаются в одном файле.
  • двоичные обновления в стиле nginx без потери соединений. Ты можешь обновить Unicorn, все ваше приложение, библиотеки и даже ваши Ruby-интерпретатор без отбрасывания клиентов.
  • before_fork и after_fork перехватчики в случае, если ваше приложение особые потребности при работе с разветвленными процессами. Они не должны необходимо, когда директива preload_app имеет значение false (по умолчанию).
  • Может использоваться для управления памятью для записи на запись для сохранения памяти (установив "preload_app" в true).
  • Возможность прослушивания нескольких интерфейсов, включая UNIX-сокеты, каждый рабочий процесс также может привязываться к частному порту через after_fork hook для легкой отладки.
  • Простой и легкий Ruby DSL для конфигурации

    1. Декодирует переносные передачи "на лету", что позволяет ускорить загрузку уведомление, которое должно быть реализовано, а также возможность туннелирования произвольные потоковые протоколы через HTTP.

Для Puma (более новая версия так называемого серверного монгрела)

Puma - простой, быстрый и высококонкурентный сервер HTTP 1.1 для веб-приложений Ruby. Он может использоваться с любым приложением, поддерживающим Rack, и считается заменой для Webrick и Mongrel. Он был разработан, чтобы стать сервером для Rubinius, но также хорошо работает с JRuby и MRI. Puma предназначен для использования в обеих средах разработки и производства.

Puma является фаворитом для скорости и parallelism

Если вы хотите увидеть сравнение скорости, тогда puma лучше всего.

вы можете увидеть http://puma.io/

Спасибо