網站壓力測試工具 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秒),但是不能根據測試結果比較網站的性能。因為還有其它因素,比如測試的當前網頁有沒有涉及到資料庫的訪問等等。

關於運維學習、分享、交流,筆者開通了微信公眾號【運維貓】,感興趣的朋友可以關注下,歡迎加入,建立屬於我們自己的小圈子,一起學運維知識。