diff third_party/wrk/README.md @ 178:94705b5986b3

[ThirdParty] Added WRK and luajit for load testing.
author MrJuneJune <me@mrjunejune.com>
date Thu, 22 Jan 2026 20:10:30 -0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/third_party/wrk/README.md	Thu Jan 22 20:10:30 2026 -0800
@@ -0,0 +1,85 @@
+# 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.
+
+  An optional LuaJIT script can perform HTTP request generation, response
+  processing, and custom reporting. Details are available in SCRIPTING and
+  several examples are located in [scripts/](scripts/).
+
+## Basic Usage
+
+    wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
+
+  This runs a benchmark for 30 seconds, using 12 threads, and keeping
+  400 HTTP connections open.
+
+  Output:
+
+    Running 30s test @ http://127.0.0.1:8080/index.html
+      12 threads and 400 connections
+      Thread Stats   Avg      Stdev     Max   +/- Stdev
+        Latency   635.91us    0.89ms  12.92ms   93.69%
+        Req/Sec    56.20k     8.07k   62.00k    86.54%
+      22464657 requests in 30.00s, 17.76GB read
+    Requests/sec: 748868.53
+    Transfer/sec:    606.33MB
+
+## Command Line Options
+
+    -c, --connections: total number of HTTP connections to keep open with
+                       each thread handling N = connections/threads
+
+    -d, --duration:    duration of the test, e.g. 2s, 2m, 2h
+
+    -t, --threads:     total number of threads to use
+
+    -s, --script:      LuaJIT script, see SCRIPTING
+
+    -H, --header:      HTTP header to add to request, e.g. "User-Agent: wrk"
+
+        --latency:     print detailed latency statistics
+
+        --timeout:     record a timeout if a response is not received within
+                       this amount of time.
+
+## Benchmarking Tips
+
+  The machine running wrk must have a sufficient number of ephemeral ports
+  available and closed sockets should be recycled quickly. To handle the
+  initial connection burst the server's listen(2) backlog should be greater
+  than the number of concurrent connections being tested.
+
+  A user script that only changes the HTTP method, path, adds headers or
+  a body, will have no performance impact. Per-request actions, particularly
+  building a new HTTP request, and use of response() will necessarily reduce
+  the amount of load that can be generated.
+
+## 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 Mike Pall's LuaJIT. Please consult the NOTICE file for licensing
+  details.
+
+## Cryptography Notice
+
+  This distribution includes cryptographic software. The country in
+  which you currently reside may have restrictions on the import,
+  possession, use, and/or re-export to another country, of encryption
+  software. BEFORE using any encryption software, please check your
+  country's laws, regulations and policies concerning the import,
+  possession, or use, and re-export of encryption software, to see if
+  this is permitted. See <http://www.wassenaar.org/> for more
+  information.
+
+  The U.S. Government Department of Commerce, Bureau of Industry and
+  Security (BIS), has classified this software as Export Commodity
+  Control Number (ECCN) 5D002.C.1, which includes information security
+  software using or performing cryptographic functions with symmetric
+  algorithms. The form and manner of this distribution makes it
+  eligible for export under the License Exception ENC Technology
+  Software Unrestricted (TSU) exception (see the BIS Export
+  Administration Regulations, Section 740.13) for both object code and
+  source code.