A modern, multi-threaded HTTP benchmarking tool for generating significant load on web servers and APIs.
wrk is a modern HTTP benchmarking tool designed to generate significant load on web servers and APIs for performance testing. It uses a multi-threaded architecture combined with scalable event notification systems to efficiently simulate high concurrent traffic from a single machine. The tool provides detailed statistics about latency, throughput, and transfer rates to help developers identify performance bottlenecks.
Backend developers, DevOps engineers, and performance testers who need to benchmark web servers, APIs, and microservices under realistic load conditions.
Developers choose wrk for its exceptional performance and efficiency in generating high concurrent load from minimal hardware resources. Its combination of multi-threading, modern event systems, and LuaJIT scripting provides both raw performance and flexibility unmatched by many other benchmarking tools.
Modern HTTP benchmarking tool
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Utilizes multiple threads and scalable event systems like epoll/kqueue to generate massive load efficiently, as shown in benchmarks with high requests per second (e.g., 748k RPS in the example).
Integrates LuaJIT for customizable HTTP request generation, response processing, and reporting, enabling complex test scenarios via scripts in the 'scripts/' directory.
Provides comprehensive statistics including latency distribution, requests per second, and transfer rates, aiding precise bottleneck identification as seen in the output with avg latency and stdev.
Designed for minimal overhead on a single multi-core CPU, maximizing load generation capabilities without heavy resource consumption.
As noted in the README, per-request actions in Lua scripts, such as building new HTTP requests, decrease the maximum load wrk can generate, limiting its effectiveness in highly customized scenarios.
Operates solely via command-line with text output, lacking built-in graphical interfaces for easier monitoring and result interpretation, which may deter users preferring visual tools.
Focused exclusively on HTTP benchmarking, with no native support for modern protocols like WebSockets or gRPC, requiring workarounds for broader application testing.
wrk is an open-source alternative to the following products:
ApacheBench (ab) is a command-line tool for benchmarking HTTP web servers, measuring performance by simulating multiple concurrent requests.
JMeter is an open-source Java application designed for load testing and performance measurement of web applications and services.
Siege is an open-source HTTP/HTTPS load testing and benchmarking tool used to measure web server performance under simulated user traffic.