Web壓測工具之Webbench和http_load
阿新 • • 發佈:2020-07-28
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簡介
以並行複用的方式執行,用以測試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 :含義是總計的訪問時間