Benchmarks against other jruby commandline webservers

Isaiah Peng edited this page Jan 4, 2014 · 5 revisions

This benchmark tested the "micro" servers listed in the jruby wiki.

Environment

$ jruby -v
jruby 1.7.9 (1.9.3p392) 2013-12-06 87b108a on Java HotSpot(TM) 64-Bit Server VM 1.7.0_07-b10 [linux-amd64]

$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

$ uname -a
Linux 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

$ wrk --version
wrk 3.0.3 [kqueue] Copyright (C) 2012 Will Glozer

torqbox A developing version of torquebox, using the undertow server

puma A server written in Ruby, wraps the Ragel parser (from Mongrel)

fishwife A wrapper around jetty 9, forked from mizuno

torquebox-lite A smaller, web-only version of TorqueBox, based on JBOSS

trinidad A wrapper of tomcat

Benchmark suits

The suites used are from the FrameworkBenchmark, the performance test run against both the rack and rails application. For the json output only. All servers are warmed up before getting the final numbers.

Command used to invoke the servers

torqbox -b 0.0.0.0 -E production
puma -e production -p 8080
fishwife -E production -p 8080
RAILS_ENV=production torquebox-lite -p 8080 -b 0.0.0.0
trinidad -e production -p 8080 --address 0.0.0.0 --runtimes 1:16
jubilee -e production

Wrk

rack

$ wrk -t4 -d30s -c100[1] http://test_server:8080/

rails

$ wrk -t4 -d30s -c100[1] http://test_server:8080/hello_world/json

Output

Rack

Rack

Rails

Rails

[1]: Replace with the concurrency number