【前言】
筆者使用wrk,是為了測(cè)試nginx轉(zhuǎn)發(fā)報(bào)文的時(shí)候set_proxy_header規(guī)則,然后發(fā)現(xiàn)wrk尤其的好用,所以在這里寫(xiě)下來(lái),以后用的時(shí)候還能查一查。
【安裝】
不講概念了,直接講安裝。
•從github上下載源碼
git clone https://github.com/wg/wrk
•然后cd到wrk目錄,進(jìn)行安裝
make
可能有一些包沒(méi)有,導(dǎo)致git,make命令不能順利執(zhí)行,安裝即可。
【基本參數(shù)】
以下是使用wrk查看到的一些基本參數(shù)信息
-c |
–connections |
N |
跟服務(wù)器建立并保持的TCP連接數(shù)量 |
-d |
–duration |
T |
壓測(cè)時(shí)間 |
-t |
–threads |
N |
使用多少個(gè)線程進(jìn)行壓測(cè) |
-s |
–script |
S |
指定Lua腳本路徑 |
-H |
–header |
H |
為每一個(gè)HTTP請(qǐng)求添加HTTP頭 |
–latency |
|
|
在壓測(cè)結(jié)束后,打印延遲統(tǒng)計(jì)信息 |
–timeout |
|
T |
超時(shí)時(shí)間 |
-v |
–version |
|
打印正在使用的wrk的詳細(xì)版本信息 |
N代表數(shù)字參數(shù),支持國(guó)際單位 (1k, 1M, 1G)
T代表時(shí)間參數(shù),支持時(shí)間單位 (2s, 2m, 2h)
wrk -c 20 -t 2 -d 2m -H “host: dream.com” http://192.168.100.1:80/manage
建立20個(gè)TCP連接,使用兩個(gè)線程,用時(shí)2分鐘,攜帶HTTP頭 “host:dream.com”,對(duì)http://192.168.100.1:80/manage進(jìn)行壓測(cè)。
【輸出內(nèi)容】
wrk -c 20 -t 2 -d 10s -H “host: dream.com” http:http://10.XX.XX.XX:80/manage
Latency 延遲時(shí)間
Req/Sec 每秒處理的請(qǐng)求數(shù)
平均值(Avg),標(biāo)準(zhǔn)偏差(Stdev),最大值(Max),正負(fù)一個(gè)標(biāo)準(zhǔn)差占比(+/-) Stdev
一般主要關(guān)注Avg和Max。Stdev如果太大說(shuō)明樣本本身離散程度比較高,有可能系統(tǒng)性能波動(dòng)很大。
50%的請(qǐng)求31.88秒返回
同上
10.02s處理了1992個(gè)請(qǐng)求數(shù),讀取了2.44M的數(shù)據(jù)。
線程總共平均1秒完成198.88個(gè)請(qǐng)求。
每秒讀取249.19KB。
也可以發(fā)送POST請(qǐng)求進(jìn)行壓測(cè)
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”
解析同上。