Skip to content

vlm/wrk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wrk - a HTTP benchmarking tool

  wrk is a modern HTTP benchmarking tool capable of generating significant
  load when run on a single multi-core CPU. It combines a multithreaded
  design with scalable event notification systems such as epoll and kqueue.

Basic Usage

  wrk -k -t8 -c400 -r10m http://localhost:8080/index.html

  This runs wrk with 8 threads, keeping 400 connections open, and making a
  total of 10 million HTTP GET requests to http://localhost:8080/index.html

  Output:

  Making 10000000 requests to http://localhost:8080/index.html
    8 threads and 400 connections
  Completed 2516980 requests
  Completed 5033960 requests
  Completed 7550940 requests
    Thread Stats   Avg      Stdev     Max   +/- Stdev
      Latency   439.75us  350.49us   7.60ms   92.88%
      Req/Sec    61.13k     8.26k   72.00k    87.54%
    10000088 requests, 100222 sock connections in 19.87s, 3.42GB read
  Requests/sec: 503396.23
  Transfer/sec:    176.16MB

Benchmarking Tips

  The machine running wrk must have a sufficient number of ephemeral ports
  available and closed sockets should be recycled quickly, especially when
  HTTP/1.1 keep-alive is disabled.
  To handle the initial connection burst the server's listen(2) backlog
  should be greater than the number of concurrent connections being tested.

Acknowledgements

  wrk contains code from a number of open source projects including the
  'ae' event loop from redis, the nginx/joyent/node.js 'http-parser' and
  the Tiny Mersenne Twister PRNG. Please consult the NOTICE file for
  licensing details.

About

Modern HTTP benchmarking tool

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 95.9%
  • C++ 4.1%