diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-03-10 18:44:34 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-03-22 19:04:27 -0700 |
commit | 98ea5cca50b907e20d6357f425d7789bac1d1a47 (patch) | |
tree | 73e3823c0cd4f23f806ac392e66e12c3d77fc61c /test/benchmark/README | |
parent | ca4265ea4d8bdeb9c569a50a05ee45e31f4b4269 (diff) | |
download | unicorn-98ea5cca50b907e20d6357f425d7789bac1d1a47.tar.gz |
dd.ru is a rackup file is intended as a dd(1)-like test for I/O performance. There are also individual request, response, and big_request benchmarks for micro benchmarking some parts of Unicorn. The rest of the benchmarks are gone: I am not interested in performance comparisons (and pissing matches) with other web servers (or their fanboys/girls). I will _NEVER_ publically publish benchmarks comparing Unicorn against other web servers. I will only compare Unicorn against other versions of Unicorn, possibly on different platforms. Neutral third-parties are invited to publish their own benchmarks (along with detailed procedures, version numbers and other details) comparing Unicorn to other servers. Signed-off-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 'test/benchmark/README')
-rw-r--r-- | test/benchmark/README | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/benchmark/README b/test/benchmark/README new file mode 100644 index 0000000..b63b8a3 --- /dev/null +++ b/test/benchmark/README @@ -0,0 +1,55 @@ += Performance + +Unicorn is pretty fast, and we want it to get faster. Unicorn strives +to get HTTP requests to your application and write HTTP responses back +as quickly as possible. Unicorn does not do any background processing +while your app runs, so your app will get all the CPU time provided to +it by your OS kernel. + +A gentle reminder: Unicorn is NOT for serving clients over slow network +connections. Use nginx (or something similar) to complement Unicorn if +you have slow clients. + +== dd.ru + +This is a pure I/O benchmark. In the context of Unicorn, this is the +only one that matters. It is a standard rackup-compatible .ru file and +may be used with other Rack-compatible servers. + + unicorn -E none dd.ru + +You can change the size and number of chunks in the response with +the "bs" and "count" environment variables. The following command +will cause dd.ru to return 4 chunks of 16384 bytes each, leading to +65536 byte response: + + bs=16384 count=4 unicorn -E none dd.ru + +Or if you want to add logging (small performance impact): + + unicorn -E deployment dd.ru + +Eric runs then runs clients on a LAN it in several different ways: + + client@host1 -> unicorn@host1(tcp) + client@host2 -> unicorn@host1(tcp) + client@host3 -> nginx@host1 -> unicorn@host1(tcp) + client@host3 -> nginx@host1 -> unicorn@host1(unix) + client@host3 -> nginx@host2 -> unicorn@host1(tcp) + +The benchmark client is usually httperf. + +Another gentle reminder: performance with slow networks/clients +is NOT our problem. That is the job of nginx (or similar). + +== request.rb, response.rb, big_request.rb + +These are micro-benchmarks designed to test internal components +of Unicorn. It assumes the internal Unicorn API is mostly stable. + +== Contributors + +This directory is maintained independently in the "benchmark" branch +based against v0.1.0. Only changes to this directory (test/benchmarks) +are committed to this branch although the master branch may merge this +branch occassionaly. |