輕量級性能測試工具wrk - 使用(基礎篇)

上一篇博文介紹了我們的輕量級性能測試工具,本篇我們開始進行輕量級性能測試工具wrk的使用學習(基礎篇)。

1.簡單使用

wrk -t 12 -c 400 -d 30s http://www.baidu.com

這條命令表示,利用wrk對www.baidu.com發起壓力測試,線程數爲12,模擬400個併發請求,持續30秒。

2.wrk子命令參數說明

除了上面簡單示例中使用到的子命令參數,wrk還有其他更豐富的功能,命令行中輸入wrk --help,可以看到支持以下命令:

轉化成中文表示爲:

[root@VM_0_5_centos ~]# wrk --help
使用方法: wrk <選項> <被測HTTP服務的UTR>                            
  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)

其中,關於線程數,並非設置的越大,壓測效果越好,線程設置過大,反而會導致線程切換過於頻繁,效果降低,一般來說,推薦設置成壓測機器CPU核心數的2倍到4倍。查看CPU核數量可使用:

cat /proc/cpuinfo| grep "processor"| wc -l

3.測試報告

執行壓測命令:

wrk -t12 -c400 -d30s --latency http://www.baidu.com

執行上面的壓測命令,30s壓測過後,生成如下壓測報告:

測試結果如上圖,說明如下:

Running 30s test @ http://www.baidu.com (壓測時間30s)
  12 threads and 400 connections (共12個測試線程,400個連接)
               (平均值)  (標準差)(最大值)(正負一個標準差所佔比例)
  Thread Stats   Avg      Stdev     Max   +/- Stdev
   (延遲)
    Latency    59.47ms   28.51ms 596.70ms   89.91%
   (每秒請求數)
    Req/Sec    61.65     69.18   343.00     88.47%
  Latency Distribution (延遲分佈)
     50%   51.20ms
     75%   60.71ms
     90%   88.29ms
     99%  179.64ms
  16088 requests in 30.08s, 238.98MB read (30.08s內處理了16088個請求,耗費流量73.86MB)
  Socket errors: connect 0, read 61, write 365, timeout 0 (發生錯誤數)
Requests/sec:    534.89  (QTP 534.89,即平均每秒處理請求數爲534.89)
Transfer/sec:      7.95MB(平均每秒流量7.95M)

其中:

    1.標準差若太大說明樣本本身離散程度比較高,有可能系統性能波動較大。

    2.延遲分佈代表,例如:50% 218.31ms -- 50%的請求在218.31ms內讀取完畢。

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