HTTP benchmarking tool that generates high load using multithreaded design and event notification systems
wrk is an HTTP benchmarking tool designed to generate significant load from a single multi-core CPU. It uses a multithreaded architecture combined with scalable event notification systems like epoll and kqueue to achieve high performance testing capabilities.
The tool supports customizable test parameters including thread count, concurrent connections, and test duration. A typical benchmark command like wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html runs 12 threads with 400 concurrent connections for 30 seconds, producing detailed statistics including latency distribution, requests per second, and transfer rates.
wrk includes optional LuaJIT scripting support for custom HTTP request generation, response processing, and reporting. This allows users to modify request methods, paths, headers, and bodies, or implement complex testing scenarios. The tool outputs comprehensive metrics including thread statistics, latency measurements with standard deviation, and throughput data.
The tool is primarily targeted at developers and system administrators who need to perform load testing on HTTP services. It's particularly useful for testing web servers, APIs, and other HTTP endpoints under various load conditions to assess performance characteristics and identify bottlenecks.