Wed 30 Aug 2006
В поисках оптимального решения: Ruby On Rails и Mongrel
Posted by Scoundrel under Development , Networks ·
Эта статья является частью серии “В поисках оптимального решения“, посвященной тестированию производительности различных схем развертывания приложений на 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
Список всех протестированных схем развертывания, описание методики тестирования и результаты всех тестов вы можете найти на странице “Результатов и Выводов“
- HAProxy - Надежный, высокопроизводительный балансировщик нагрузки для TCP/HTTP
- 32bit VS 64bit - what do you use?
- Using Nginx, SSI and Memcache to Make Your Web Applications Faster
- New MySQL Performance Forums
- Варианты настройки Ruby On Rails на максимальную производительность: mongrel vs lighttpd vs nginx