【前言】
筆者使用wrk,是為了測試nginx轉發報文的時候set_proxy_header規則,然后發現wrk尤其的好用,所以在這里寫下來,以后用的時候還能查一查。
【安裝】
不講概念了,直接講安裝。
- 從github上下載源碼
git clone https://github.com/wg/wrk |
- 然后cd到wrk目錄,進行安裝
make |
可能有一些包沒有,導致git,make命令不能順利執行,安裝即可。
【基本參數】
以下是使用wrk查看到的一些基本參數信息
-c |
--connections |
N |
跟服務器建立並保持的TCP連接數量 |
-d |
--duration |
T |
壓測時間 |
-t |
--threads |
N |
使用多少個線程進行壓測 |
-s |
--script |
S |
指定Lua腳本路徑 |
-H |
--header |
H |
為每一個HTTP請求添加HTTP頭 |
--latency |
|
|
在壓測結束后,打印延遲統計信息 |
--timeout |
|
T |
超時時間 |
-v |
--version |
|
打印正在使用的wrk的詳細版本信息 |
N代表數字參數,支持國際單位 (1k, 1M, 1G)
T代表時間參數,支持時間單位 (2s, 2m, 2h)
wrk -c 20 -t 2 -d 2m -H "host: dream.com" http://192.168.100.1:80/manage
建立20個TCP連接,使用兩個線程,用時2分鍾,攜帶HTTP頭 "host:dream.com",對http://192.168.100.1:80/manage進行壓測。
【輸出內容】
wrk -c 20 -t 2 -d 10s -H "host: dream.com" http:http://10.XX.XX.XX:80/manage
Latency 延遲時間
Req/Sec 每秒處理的請求數
平均值(Avg),標准偏差(Stdev),最大值(Max),正負一個標准差占比(+/-) Stdev
一般主要關注Avg和Max。Stdev如果太大說明樣本本身離散程度比較高,有可能系統性能波動很大。
50%的請求31.88秒返回
同上
10.02s處理了1992個請求數,讀取了2.44M的數據。
線程總共平均1秒完成198.88個請求。
每秒讀取249.19KB。
也可以發送POST請求進行壓測
wrk -c 20 -t 2 -d 10 -H "host: dream.com" --script=post.txt http://10.XX.XX.XX:80/manage --latency --timeout 1s
post.txt
wrk.method = "POST"
wrk.body = "x=1&y=2"
wrk.headers["Content-Type"] = "application/x-www-form-urlencoded" |
解析同上。