HTTP load generator · ApacheBench replacement
A tiny program
that sends some load
to a web application.
That sentence is the project’s entire self-description, and it is the whole pitch. hey runs a provided number of requests at a provided concurrency level and prints stats. It also supports HTTP/2 endpoints.
1000 requests, 100 concurrent workers
$ hey -n 1000 -c 100 https://example.com
Latency distribution
illustrative shape — not a measurementThe cells are empty on purpose. These are your numbers, not ours — no benchmark figure is reproduced here, because the tool exists to produce yours.
The flags that change the experiment
defaults shown as the project documents themThe interference controls matter as much as the load ones: -disable-keepalive prevents TCP connection reuse between requests, -disable-compression and -disable-redirects remove two more variables, and -cpus bounds how much of your own machine is in the measurement. A load generator that cannot be held still is measuring itself.