Generated by GPT-5-mini| wrk (HTTP benchmarking tool) | |
|---|---|
| Name | wrk |
| Programming language | C, Lua |
| Operating system | Unix-like |
| License | MIT |
wrk (HTTP benchmarking tool) is a modern HTTP benchmarking tool used to generate significant load against web servers and measure performance. It is commonly employed alongside tools used by platform teams at Google, Facebook, Twitter, Microsoft and in academic benchmarks from Stanford University, MIT, and University of California, Berkeley. The tool is frequently compared in reports by organizations such as The Linux Foundation, Cloud Native Computing Foundation, and testing suites created by Netflix.
wrk is a command-line utility developed to deliver high throughput using multithreading and scalable network I/O, often evaluated in studies alongside Apache HTTP Server, nginx, HAProxy, Envoy (software), and Caddy (web server). It targets load-testing scenarios familiar to site reliability engineers from companies like Amazon Web Services, Google Cloud Platform, Microsoft Azure, and projects maintained under Linux Foundation stewardship. Benchmark results produced by wrk are cited in whitepapers from firms such as Akamai Technologies, Cloudflare, and Fastly and in performance comparisons in proceedings of conferences like USENIX, ACM SIGCOMM, and IEEE INFOCOM.
wrk emphasizes a small footprint and high scalability by combining event-driven I/O models influenced by work from Jonathan Harty, event loop designs used in libuv and epoll research, and scripting via an embedded Lua engine pioneered in projects like World of Warcraft modding and adopted by Nginx Lua Module. Key features include multithreaded request generators inspired by designs from Herlihy and Shavit and non-blocking networking strategies comparable to implementations in nginx and HAProxy. It supports HTTP/1.1 semantics relevant to standards from IETF and ties into TLS stacks used in OpenSSL, LibreSSL, and BoringSSL. The tool's architecture mirrors approaches described in papers by researchers from Carnegie Mellon University and Princeton University on concurrent network servers.
Typical command-line usage is influenced by ergonomics used in utilities like curl, ab (ApacheBench), siege (software), and httperf. Users specify connections, threads, and duration parameters akin to syntaxes found in GNU Coreutils and shells like Bash and Zsh. Scripts use Lua snippets in a style similar to extensions for Nginx Lua Module and scripting patterns from Redis clients. Example workflows appear in tutorials by engineering teams at Twitter Engineering, LinkedIn Engineering, and GitHub, and are demonstrated at meetups sponsored by O'Reilly Media, Stack Overflow, and ACM chapters.
Benchmarking results with wrk are often cited in comparative studies alongside Siege (software), httperf, wrk2, JMeter, and Gatling (software). Its strengths include low overhead per connection, which researchers at MIT CSAIL and practitioners from Facebook Engineering have highlighted when evaluating event-driven servers like nginx and Caddy (web server). Limitations include single-process Lua scripting constraints similar to those discussed in literature from University of Cambridge and lack of built-in distributed orchestration compared to tools developed by Netflix and HashiCorp; practitioners often combine wrk with orchestration frameworks such as Kubernetes, Ansible, and Terraform (software) for larger experiments. The tool's handling of HTTP/2 and advanced TLS features is less comprehensive than purpose-built frameworks referenced in RFCs by IETF HTTP Working Group and implementations like nghttp2.
The implementation uses C for core networking loops and embeds a Lua VM for scripting, reflecting approaches taken in projects like Nginx (web server), Lighttpd, and Redis. Networking leverages system calls and APIs standardized on platforms from Linux kernel developers and borrows event loop ideas from libraries such as libuv and research described in proceedings of USENIX Annual Technical Conference. Threading and synchronization follow models discussed by authors affiliated with Massachusetts Institute of Technology and ETH Zurich. The build system and portability considerations align with practices advocated by GNU Make and ecosystems maintained by The Linux Foundation.
wrk has been adopted by engineering teams at companies and institutions including Cloudflare, DigitalOcean, Heroku, Slack Technologies, Dropbox, Spotify, and academic labs at Harvard University and Yale University for load-testing and research. It appears in benchmarking suites and blog posts produced by Google Cloud Platform and has been referenced in conference talks at Velocity Conference and tutorials at FOSDEM. Community contributions and forks are hosted on platforms such as GitHub, and discussions about enhancements occur in forums frequented by developers active in projects like Nginx, Envoy (software), and HAProxy.
Category:Benchmarking tools