Run a fixed-rate load test against an HTTP API to measure true 99th-percentile latency without coordinated omission bias.
Benchmark a web server to find out how it holds up under sustained, constant traffic rather than a burst.
Use the Lua scripting interface to generate custom HTTP requests with dynamic headers or bodies during a load test.
Requires Make and OpenSSL to build from source, produces a single binary with no runtime dependencies after compilation.
wrk2 is a command-line tool for load testing HTTP servers. You point it at a URL, tell it how many requests per second to send, and it runs the test for however long you specify, then reports back how the server performed. It is built on top of wrk, an existing benchmarking tool, with a key difference: wrk2 sends requests at a constant, controlled rate rather than sending them as fast as possible. That distinction matters because of a problem the author calls Coordinated Omission. When a load generator simply blasts requests as fast as it can, it naturally slows down when the server gets backed up, so the slowest responses are underrepresented in the results. The numbers look better than reality. wrk2 sends requests on a fixed schedule regardless of how slowly the server is responding, which means the reported latency includes the time requests spend waiting to be handled, not just the time spent in flight. This gives a more accurate picture of what real users would experience. Latency results are stored using a data structure called an HdrHistogram, which records every value without losing precision at high percentiles. This allows wrk2 to accurately report what happened at the 99th, 99.9th, or even 99.9999th percentile if you run the test long enough. Usage looks like this: you specify the number of threads, the number of open connections, the duration of the test, and the target request rate. An optional Lua scripting interface, inherited from wrk, lets you customize how requests are generated and how results are processed. Several example scripts are included in the repository. The tool is written in C and runs on Linux and macOS. Building it requires Make and OpenSSL. It is single-binary and has no runtime dependencies beyond the operating system. The README includes detailed output examples and a lengthy explanation of Coordinated Omission for readers who want to understand why conventional load generators produce misleading latency numbers. The full README is longer than what was shown.
← giltene on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.