wrk壓測工具

介紹

wrk支持UNIX系統,不支持windows

使用了epoll,這意味着我們可以用少量的線程來跟被測服務創建大量連接,進行壓測

安裝

只要從github上下載wrk源碼,在項目路徑下執行make命令即可。

git clone https://github.com/wg/wrk
make

make之後,會在項目路徑下生成可執行文件wrk,隨後就可以用其進行HTTP壓測了

基本使用

命令行敲下wrk,可以看到使用幫助

  Options:                                            
    -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 -t8 -c200 -d30s --latency  "http://www.bing.com"

以上使用8個線程保持200個連接,對bing首頁進行了30秒的壓測,並要求在壓測結果中輸出響應延遲信息。以下對壓測結果進行簡單註釋
輸出:

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 
  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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章