Summary: Benchmarking mod_ruby compiled against ruby 1.8 and 1.9 has similar results, mod_ruby compiled against Ruby 1.8.7 seems just a little bit faster. In massively concurrent situations this builds up to more failed requests with ruby 1.9. In both cases the application was using Ruby 1.9.3-p0.
# mod_ruby 1.3.0 compiled against ruby 1.8.7-p352 user@localhost:~$ sudo /etc/init.d/apache2 restart # application servers as well user@localhost:~$ time curl http://oddb.user.org/ &> /dev/null curl http://oddb.user.org/ &> /dev/null 0,00s user 0,00s system 0% cpu 8,649 total user@localhost:~$ time curl http://oddb.user.org/ &> /dev/null curl http://oddb.user.org/ &> /dev/null 0,00s user 0,00s system 0% cpu 0,127 total user@localhost:~$ /usr/sbin/ab -n 1000 -c 100 http://oddb.user.org/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking oddb.user.org (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Apache Server Hostname: oddb.user.org Server Port: 80 Document Path: / Document Length: 16588 bytes Concurrency Level: 100 Time taken for tests: 97.227 seconds Complete requests: 1000 Failed requests: 151 (Connect: 0, Receive: 0, Length: 151, Exceptions: 0) Write errors: 0 Non-2xx responses: 34 Total transferred: 16427583 bytes HTML transferred: 16024125 bytes Requests per second: 10.29 [#/sec] (mean) Time per request: 9722.738 [ms] (mean) Time per request: 97.227 [ms] (mean, across all concurrent requests) Transfer rate: 165.00 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 5 13.8 0 47 Processing: 293 9516 4096.0 9073 37415 Waiting: 293 9515 4096.1 9073 37415 Total: 293 9520 4100.2 9078 37415 Percentage of the requests served within a certain time (ms) 50% 9078 66% 9824 75% 10291 80% 10727 90% 12871 95% 18155 98% 22648 99% 25385 100% 37415 (longest request) # shugo/mod_ruby (version 4e4dce5cec6910bf0864ef58a5c19ff06ce66978 from 13th January), compiled against ruby 1.9.1-p0 user@localhost:~$ sudo /etc/init.d/apache2 restart # application servers as well user@localhost:~$ time curl http://oddb.user.org/ &> /dev/null curl http://oddb.user.org/ &> /dev/null 0,00s user 0,00s system 0% cpu 8,536 total user@localhost:~$ time curl http://oddb.user.org/ &> /dev/null curl http://oddb.user.org/ &> /dev/null 0,00s user 0,00s system 0% cpu 0,145 total user@localhost:~$ /usr/sbin/ab -n 1000 -c 100 http://oddb.user.org/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking oddb.user.org (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Apache Server Hostname: oddb.user.org Server Port: 80 Document Path: / Document Length: 16588 bytes Concurrency Level: 100 Time taken for tests: 98.175 seconds Complete requests: 1000 Failed requests: 362 (Connect: 0, Receive: 0, Length: 362, Exceptions: 0) Write errors: 0 Non-2xx responses: 38 Total transferred: 16360786 bytes HTML transferred: 15957980 bytes Requests per second: 10.19 [#/sec] (mean) Time per request: 9817.469 [ms] (mean) Time per request: 98.175 [ms] (mean, across all concurrent requests) Transfer rate: 162.74 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 3 10.2 0 60 Processing: 215 9603 4769.7 8749 28653 Waiting: 215 9603 4769.8 8749 28653 Total: 215 9607 4772.1 8749 28713 Percentage of the requests served within a certain time (ms) 50% 8749 66% 9425 75% 9920 80% 10367 90% 15096 95% 21672 98% 25390 99% 26131 100% 28713 (longest request)