1. 程式人生 > 實用技巧 >Web壓測工具之Webbench和http_load

Web壓測工具之Webbench和http_load

Webbench簡介

是知名的網站壓力測試工具,能測試處在相同硬體上,不同服務的效能以及不同硬體上同一個服務的執行狀況。

webbench的標準測試可以向我們展示伺服器的兩項內容:每秒鐘相應請求數和每秒鐘傳輸資料量。

Webbench最多可以模擬3萬個併發連線去測試網站的負載能力

# 1.特點中規中矩,比較穩定
# 2.可以設定併發數和執行測試時間
# 3.可以對php,jsp等網頁進行測試

# 綜合來說,功能一般,但是勝在穩定,可以對頁面進行測試並直接顯示每秒響應數和流量

部署

# 安裝依賴編輯器
yum install -y gcc ctags make
wget http://www.ha97.com/code/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install

使用案例

前面必須帶http,最後面必須帶/
-c指定併發,-t執行幾秒,不確定每秒訪問多少
webbench -c 2000 -t 2 http://192.168.2.38/

#請求頁面為xxx
Benchmarking: GET http://192.168.2.38/

#併發2000,執行5秒
2000 clients, running 2 sec.

#每分鐘訪問頁面數量,每分鐘位元組數
Speed=409349 pages/min, 5757768 bytes/sec.

#請求13645次,失敗0
Requests: 13645 susceed, 0 failed.

Http_load簡介

http_load

以並行複用的方式執行,用以測試Web伺服器的吞吐量與負載。但是它不同於大多數壓力測試工具,其可以以一個單一的程序執行,這樣就不會把客戶機搞死,還可以測試HTTPS類的網站請求

# 1 . 它是讀取檔案方式來測試,檔案中可以填寫多個URL
# 2 . 可以設定1000併發,執行100次
# 3 . 可以設定100個併發,執行一小時
# 4 . 可以設定每秒100個請求,請求1000次
# 5 . 可以設定每秒100個請求,執行一小時

# 適合一個網站多個頁面,長久的測試,看訪問壓力。但因為是單執行緒的,導致不能併發去訪問

部署

yum -y install gcc cmake
# 然後建立存放說明的資料夾,否則編譯報錯
mkdir /usr/local/man
wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz
tar -xzvf http_load-12mar2006.tar.gz
cd http_load-12mar2006
make && make install

使用案例

# 首先建立url檔案
vim url.txt
echo "http://192.168.2.38/" >> url.txt
# 2000併發,總數為1萬
http_load -p 2000 -f 10000 url.txt


# 測試中運行了1000個請求,最大的併發程序數是270(自己設定的,但差不少),總計傳輸的資料是6.12e+06 bytes,執行的時間是2.74116秒
10000 fetches, 270 max parallel, 6.12e+06 bytes, in 2.74116 seconds

# 每個連線平均傳輸的資料量
612 mean bytes/connection

# 說明每秒的響應請求數為3648,每秒傳遞的資料為2.23263e+06 bytes
3648.09 fetches/sec, 2.23263e+06 bytes/sec

# 每次連線的平均響應時間是11.4839毫秒,最大響應時間1007.84,最小響應時間0.104
msecs/connect: 11.4839 mean, 1007.84 max, 0.104 min

# 說明每個請求的平均響應時間是13.4338毫秒,最大233.393,最小1.238
msecs/first-response: 13.4338 mean, 233.393 max, 1.238 min

# 說明開啟響應頁面的型別,如果403的型別過多,那可能要注意是否系統遇到了瓶頸。當前1000個都返回200
HTTP response codes:
  code 200 -- 10000 
引數
# 命令格式:http_load  -p 併發訪問程序數  -s 訪問時間  需要訪問的URL檔案
# 引數其實可以自由組合,引數之間的選擇並沒有什麼限制。

# 比如你寫成http_load -parallel 5 -seconds 300 urls.txt也是可以的。我們把引數給大家簡單說明一下。

# -parallel 簡寫-p :含義是併發的使用者程序數。
# -fetches 簡寫-f :含義是總計的訪問次數
# -rate    簡寫-r :含義是每秒的訪問頻率,最大1000
# -seconds簡寫-s :含義是總計的訪問時間