網站壓力測試工具 Webbench
- 2019 年 10 月 6 日
- 筆記
Webbench是知名的網站壓力測試工具,它是由Lionbridge公司(http://www.lionbridge.com)開發。
Webbench能測試處在相同硬體上,不同服務的性能以及不同硬體上同一個服務的運行狀況。webbench的標準測試可以向我們展示伺服器的兩項內容:每秒鐘相應請求數和每秒鐘傳輸數據量。webbench不但能具有便准靜態頁面的測試能力,還能對動態頁(ASP,PHP,JAVA,CGI)進 行測試的能力。還有就是他支援對含有SSL的安全網站例如電子商務網站進行靜態或動態的性能測試。Webbench最多可以模擬3萬個並發連接去測試網站的負載能力。
一、獲得webbench
1、下載
官方網站:http://home.tiscali.cz/~cz210552/webbench.html
2、WebBench安裝:
[root@docker-04 opt]# yum install -y gcc ctags #先安裝編譯需要的組件
[root@docker-04 opt]# wget http://www.ha97.com/code/webbench-1.5.tar.gz
[root@docker-04 opt]# tar zxvf webbench-1.5.tar.gz
[root@docker-04 opt]# cd webbench-1.5
[root@docker-04 webbench-1.5]# make -j 4
[root@docker-04 webbench-1.5]# cp webbench /usr/bin
二、使用方法
[root@docker-04 webbench-1.5]# webbench
webbench [option]… URL
-f|–force Don't wait for reply from server.
-r|–reload Send reload request – Pragma: no-cache.
-t|–time <sec> Run benchmark for <sec> seconds. Default 30.
-p|–proxy <server:port> Use proxy server for request.
-c|–clients <n> Run <n> HTTP clients at once. Default one.
-9|–http09 Use HTTP/0.9 style requests.
-1|–http10 Use HTTP/1.0 protocol.
-2|–http11 Use HTTP/1.1 protocol.
–get Use GET request method.
–head Use HEAD request method.
–options Use OPTIONS request method.
–trace Use TRACE request method.
-?|-h|–help This information.
-V|–version Display program version.
三、進行測試
示例1,一般我們只用到-c和-t兩個參數,類似下面這樣。
[root@docker-04 webbench-1.5]# webbench -c 300 -t 60 http://192.168.88.157/phpinfo.php
-t表示運行測試的時間,如果不指定默認是30秒,-c表示客戶端數量,也就是並發數。
示例2,是csdn部落格的首頁。
[root@docker-04 webbench-1.5]# webbench -c 1000 http://blog.csdn.net/
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://blog.csdn.net/
1000 clients, running 30 sec.
Speed=86078 pages/min, 665694 bytes/sec.
Requests: 42948 susceed, 91 failed.
示例3,是一個可以下載電影的網站。
[root@docker-04 webbench-1.5]# webbench -c 1000 http://www.80s.com/
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://www.80s.com/
1000 clients, running 30 sec.
Speed=60224 pages/min, 498450 bytes/sec.
Requests: 110 susceed, 30002 failed.
示例4,是我公司的一個網站,用於商戶管理,查詢交易記錄等功能。該網站是java寫的,用了struts+spring+hibernate的框架。
[root@docker-04 webbench-1.5]# webbench -c 1000 http://xxx.xxx.xxx.xxx:8080/INNPay/login.jsp
示例5,是我公司一個公眾號服務地址。php寫的,沒有用任何的框架。
[[email protected]]#webbench -c 1000 http://xxx.xxx.xxx/inn_wechat_nofity/mc_login.php
四、結果分析
Pages/min:指的輸出頁數/分
bytes/sec:是指比特/秒
這兩個指標能反應網站的訪問速度。susceed和failed表示請求的成功數目和失敗數目,失敗的原因雖然沒有日誌但是應該能猜出是get請求得不到200的響應。
在測試的過程中,再通過瀏覽器訪問被測試的網址能感覺到明顯的卡頓。
上面的測試使用了相同的參數(1000的並發數目,30秒),但是不能根據測試結果比較網站的性能。因為還有其它因素,比如測試的當前網頁有沒有涉及到資料庫的訪問等等。
關於運維學習、分享、交流,筆者開通了微信公眾號【運維貓】,感興趣的朋友可以關注下,歡迎加入,建立屬於我們自己的小圈子,一起學運維知識。