# 安裝 make 工具
sudo apt-get install make
# 安裝 gcc編譯環境
sudo apt-get install build-essential
git clone https://github.com/wg/wrk
cd /wrk目錄
make
linux
root@chaitin-safeline:~/wrk# ./wrk -c 1000 -d 30 -t 32http://1.1.1.252
mac
cd wrk-master
wrk -c 100 -d 30 -t 5http://1.1.1.2
# 使用方法: wrk <選項><被測HTTP服務的URL>? Options:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? -c, --connections <N>? 跟服務器建立并保持的TCP連接數量?
? ? -d, --duration? ? <T>? 壓測時間(s)? ? ? ? ?
? ? -t, --threads? ? <N>? 使用多少個線程進行壓測(根據 cpu 幾核)
? ? -s, --script? ? ? <S>? 指定Lua腳本路徑? ? ?
? ? -H, --header? ? ? <H>? 為每一個HTTP請求添加HTTP頭? ? ?
? ? ? ? --latency? ? ? ? ? 在壓測結束后,打印延遲統計信息?
? ? ? ? --timeout? ? <T>? 超時時間? ?
? ? -v, --version? ? ? ? ? 打印正在使用的wrk的詳細版本信息
? <N>代表數字參數,支持國際單位 (1k, 1M, 1G)
? <T>代表時間參數,支持時間單位 (2s, 2m, 2h)
例如:
wrk -t8 -c200 -d30s --latency? "http://www.bing.com"
Running 30s test @ http://www.bing.com (壓測時間30s)
? 8 threads and 200 connections (共8個測試線程,200個連接)
? Thread Stats? Avg? ? ? Stdev? ? Max? +/- Stdev? ? ? ? ? ? ? (平均值) (標準差)(最大值)(正負一個標準差所占比例)
? ? Latency? ? 46.67ms? 215.38ms? 1.67s? ? 95.59%? ? (延遲)? ? Req/Sec? ? 7.91k? ? 1.15k? 10.26k? ? 70.77%? ? (處理中的請求數)? Latency Distribution (延遲分布)? ? 50%? ? 2.93ms
? ? 75%? ? 3.78ms
? ? 90%? ? 4.73ms
? ? 99%? ? 1.35s (99分位的延遲)? 1790465 requests in 30.01s, 684.08MB read (30.01秒內共處理完成了1790465個請求,讀取了684.08MB數據)Requests/sec:? 59658.29 (平均每秒處理完成59658.29個請求)(QPS、最大請求數、最大連接數)Transfer/sec:? ? 22.79MB (平均每秒讀取數據22.79MB)(最大吞吐)
-H "Connection: Close"
請求后連接關閉,所以一個連接只有一個請求
如果是keep-alive,一個連接可以有多個請求
標準差如果太大說明樣本本身離散程度比較高. 有可能系統性能波動很大
https://www.cnblogs.com/jiftle/p/7158291.html
-t 一般根據 cpu 數量來定,一般是 cpu 的整數倍
-c 一般是一個線程 100 個
-t 1 -c 100? Requests/sec 為 cps(每秒連接數)
-t 12 -c 1200 Requests/sec 為 qps(四核)