В поисках оптимального решения: Ruby On Rails и Mongrel

Posted by Oleksiy Kovyrin under Development, Networks · english

Эта статья является частью серии “В поисках оптимального решения“, посвященной тестированию производительности различных схем развертывания приложений на Ruby On Rails. Основной идеей тестирования является поиск подмножества самых оптимальных с точки зрения производительности решений по установке RoR-приложений в различных ситуациях.

Эта небольшая статья посвящена установке связки Rails+Mongrel и ее производительности. Список всех протестированных схем развертывания, описание методики тестирования и результаты всех тестов вы можете найти на странице “Результатов и Выводов“.

Для начала я хотел бы рассказать, что такое Mongrel:

Mongrel – это быстрая HTTP-библиотека и веб-сервер для Ruby, предназначенные для хостинга веб-приложений на Ruby используя HTTP вместо FastCGI или SCGI. На данный момент он поддерживает фреймворки Ruby On Rails, Og+Nitro и Camping.

Самый простой метод начать использование Mongrel – это установить его с помощью RubyGems и затем запускать с его помощью приложения Ruby on Rails. Вы можете сделать это просто (команды для *nix-based систем):

  $ sudo gem install mongrel
  $ cd your_rails_app
  $ mongrel_rails start -d

Этот набор команд запустит Mongrel в фоне. Вы можете остановить его:

  $ mongrel_rails stop

Вот и все, что необходимо. Есть еще несколько опций, которые могут быть установлены у команды start. Используйте mongrel_rails start -h для просмотра возможных опций и их описания.

Мои тесты с Mongrel были произведены на одном процессе, запущенном следующим образом:

  $ mongrel_rails start -d -e production --port 8080

Результаты оказались следующими:

  • Web Server: Mongrel 0.3.13.3 (single process)
  • Время, затраченное на тесты: 124,53 sec
  • Средняя продолжительность запроса: 1245,34 ms
  • Время, затраченное на запрос (среднее по всем параллельным запросам): 12,45 ms
  • Количество запросов в секунду (среднее): 80,30
  • Transfer rate (Kbytes/sec): 26,81
  • Прирост производительности по сравнению с WEBrick (%): 37,43

Список всех протестированных схем развертывания, описание методики тестирования и результаты всех тестов вы можете найти на странице “Результатов и Выводов


Related posts:

  1. В Поисках Оптимального Решения: Результаты Тестирования и Выводы
  2. Варианты настройки Ruby On Rails на максимальную производительность: mongrel vs lighttpd vs nginx
  3. Ошибка в Perl’овом Thread::Semaphore: Утечка памяти (решение прилагается)
  4. HAProxy – Надежный, высокопроизводительный балансировщик нагрузки для TCP/HTTP
  5. Использование epoll() Для Организации Асинхронной Работы С Сетевыми Соединениями

Comments are closed.