I did a simple benchmark comparing Resin 3.1.4 to Tomcat 6.0.14 and the results are a bit astounding. Beyond the fact that Tomcat crashed and burned, Resin Open Source is about 45% faster than Tomcat, Resin Professional is about 80% faster than Tomcat. I made an 8k jsp that just contains static text. Each server was run with it’s default configuration, in console mode. I gave each server a warmup of 20 requests, and then did three runs of 20000 requests:
$ ab -c 4 -n 20 http://localhost:8080/bench/8k.jsp
$ ab -c 4 -n 20000 http://localhost:8080/bench/8k.jsp
$ ab -c 4 -n 20000 http://localhost:8080/bench/8k.jsp
$ ab -c 4 -n 20000 http://localhost:8080/bench/8k.jsp
Resin OS 3.1.4:
Run 1 requests per second: 1525.99
Run 2 requests per second: 1233.56
Run 3 requests per second: 1620.21
Resin Professional 3.1.4:
Run 1 requests per second: 1903.19
Run 2 requests per second: 1887.76
Run 3 requests per second: 1657.05
Tomcat 6.0.14:
Run 1 requests per second: 1040.53
Run 2 requests per second: N/A (tomcat crash)
Run 3 requests per second: N/A (tomcat crash)
Tomcat died after 16000 requests of the second run with a java.lang.OutOfMemoryError: Java heap space.
Reproducing
This is fairly easy to try on your own machine, install is simple:
- download/unpack Resin from http://www.caucho.com/download
- copy an 8k txt file to webapps/bench/8k.jsp
- $ bin/httpd.sh
- in another terminal window, run ab
$ ab -c 4 -n 20 http://localhost:8080/bench/8k.jsp
$ ab -c 4 -n 20000 http://localhost:8080/bench/8k.jsp
$ ab -c 4 -n 20000 http://localhost:8080/bench/8k.jsp
- download/unpack Tomcat
- copy an 8k txt file to webapps/bench/8k.jsp
- $ bin/catalina.sh run
- in another terminal window, run ab
$ ab -c 4 -n 20 http://localhost:8080/bench/8k.jsp
$ ab -c 4 -n 20000 http://localhost:8080/bench/8k.jsp
$ ab -c 4 -n 20000 http://localhost:8080/bench/8k.jsp