Linux下性能測試工具 wrk 安裝與使用

一、wrk介紹

今天給大家介紹一款開源的性能測試工具 wrk,簡單易用,沒有Load Runner那麼複雜,他和 apache benchmark(ab)同屬於性能測試工具,但是比 ab 功能更加強大,並且可以支持lua腳本來創建複雜的測試場景。

wrk 的一個很好的特性就是能用很少的線程壓出很大的併發量, 原因是它使用了一些操作系統特定的高性能 I/O 機制, 比如 select, epoll, kqueue 等。 其實它是複用了 redis 的 ae 異步事件驅動框架. 確切的說 ae 事件驅動框架並不是 redis 發明的, 它來至於 Tcl的解釋器 jim, 這個小巧高效的框架, 因爲被 redis 採用而更多的被大家所熟知.

wrk GitHub 源碼:https://github.com/wg/wrk

安裝:wrk只能運行於 Unix 類的系統上,也只能在這些系統上便宜,所以我們需要一個Linux或者macOs。

二、安裝wrk前環境準備

2.1 安裝 make 工具

sudo apt-get install make

2.2 安裝 gcc編譯環境

sudo apt-get install build-essential

三、安裝wrk

3.1 使用 git 下載 wrk 的源碼到本地:

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

3.2 切換到git的wrk目錄

cd wrk-master/

3.3 然後使用make命令編譯安裝

make

編譯完成之後,目錄下面會多一個 wrk 的文件。

在這裏插入圖片描述

三、wrk測試與使用

3.1 測試百度

./wrk -c 1 -t 1 -d 1 http://www.baidu.com

在這裏插入圖片描述

3.2 測試nginx

wrk --latency -H "Host: www.example.com" -c 2048 -d 30 -t 2 http://127.0.0.1:80

在這裏插入圖片描述

四、簡單說一下wrk裏面各個參數什麼意思

-t 需要模擬的線程數
-c 需要模擬的連接數
–timeout 超時的時間
-d 測試的持續時間

結果:

Latency:響應時間
Req/Sec:每個線程每秒鐘的完成的請求數
Avg:平均
Max:最大
Stdev:標準差
+/- Stdev: 正負一個標準差佔比 標準差如果太大說明樣本本身離散程度比較高. 有可能系統性能波動很大.

如果想看響應時間的分佈情況可以加上–latency參數

我們的模擬測試的時候需要注意,一般線程數不宜過多,核數的2到4倍足夠了。 多了反而因爲線程切換過多造成效率降低, 因爲 wrk 不是使用每個連接一個線程的模型, 而是通過異步網絡 I/O 提升併發量。 所以網絡通信不會阻塞線程執行,這也是 wrk 可以用很少的線程模擬大量網路連接的原因。

在 wrk 的測試結果中,有一項爲Requests/sec,我們一般稱之爲QPS(每秒請求數),這是一項壓力測試的性能指標,通過這個參數我們可以看出應用程序的吞吐量。

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