HTTP壓測工具wrk使用指南


【前言】

筆者使用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和MaxStdev如果太大說明樣本本身離散程度比較高,有可能系統性能波動很大。

   

   

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"

   

解析同上。

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM