Skip to content

taoensso/clojure-web-benchmarks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taoensso open source

Clojure web (server) benchmarks

This is a collaborative repo maintained by a a number of contributors. Thanks to everyone for making this possible! - Peter Taoussanis

Results

Last updated: TODO

There is no such thing as a one-size-fits-all benchmark. Results will vary dramatically based on your server hardware and the kind of workload you're testing.

So results are organised into named benchmarking profiles that determine wrk config:

Profile Connections Keep alive?
1k-keepalive 32→1024
1k-non-keepalive 32→1024 -
60k-keepalive 10k→60k
60k-non-keepalive 10k→60k -

Or see here for older results from before benchmarking profiles were introduced.

Running benchmarks yourself

Getting started is really easy!

  1. Clone this repo locally
  2. Run start-here.sh in the repo root

Benchmark info

  • Benchmarking with wrk
  • Server response length: 1163 bytes

The particular server hardware, wrk2 config, and server versions will vary between each result set.

Servers tested

Alphabetically:

Contributing

GitHub pull requests very welcome for:

  • Additional web servers
  • Updated servers (no snapshot releases please!)
  • Server / bench config tuning!

If you are submitting a pull request to update results

  1. Please target your PR towards a branch with your GitHub user name.
  2. Please try to include graph/s when possible. We're looking mostly for relative numbers here so it's not a big deal if the hardware changes between PRs, so long as it's documented and mentioned in any graphs.
  3. Please try ensure that all servers being benchmarked have a reasonable configuration for your hardware environment. This is especially important if your hardware environment is unusual (e.g. fewer/more cores than usual). If you're unclear on how to adjust some server's configuration for your environment, feel free to open an issue to check that the config you're proposing seems solid to interested maintainers.

If you have any questions, please open an issue on GitHub.

Cheers!

- Peter Taoussanis