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)