This small article is about Rails+Mongrel setup and its performance. List of other tested deployment schemes, description of testing methodology and, of course, all benchmark results you can find on “Ruby On Rails Benchmark Summary and Findings” page.
First of all, let me give you some information about what is Mongrel:
Mongrel is a fast HTTP library and server for Ruby that is intended for hosting Ruby web applications of any kind using plain HTTP rather than FastCGI or SCGI. It is framework agnostic and already supports Ruby On Rails, Og+Nitro, and Camping frameworks.
The easiest way to get started with Mongrel is to install it via RubyGems and then run a Ruby on Rails application. You can do this easily (commands are for *nix-based systems):
$ sudo gem install mongrel $ cd your_rails_app $ mongrel_rails start -d
Which runs Mongrel in the background. You can stop it with:
$ mongrel_rails stop
And you’re all set. There’s quite a few options you can set for the start command. Use the mongrel_rails start -h to see them all.
My Mongrel test was performed for single mongrel process started with simple:
$ mongrel_rails start -d -e production --port 8080
Test results are following:
- Web Server: Mongrel 0.3.13.3 (single process)
- Time taken for tests: 124,53 sec
- Time per request (mean): 1245,34 ms
- Time per request (mean, across all concurrent requests): 12,45 ms
- Requests per second (mean): 80,30
- Transfer rate (Kbytes/sec): 26,81
- Performance Growth Comparing To WEBrick(%): 37,43
List of other tested deployment schemes, description of testing methodology and, of course, all benchmark results you can find on “Ruby On Rails Benchmark Summary and Findings” page.
- Looking For Optimal Solution: Benchmark Results Summary and Findings
- High-Performance Ruby On Rails Setups Test: mongrel vs lighttpd vs nginx
- Bug in Perl’s Thread::Semaphore: Memory Leak (solution provided)
- HAProxy – The Reliable, High Performance TCP/HTTP Load Balancer
- How To Get “Provider Independent” IP Address For Your Home Server?