WEB 壓測軟體

WEB 壓測軟體

標籤: 
WEB 壓測軟體
 
介紹兩套軟體:
Siege & Webbench
 
 


 

 
軟體名稱:siege(英文原意:圍攻)
下載位址:wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
tar -zxvf siege-3.0.5.tar.gz
cd siege-3.0.5
./configure –prefix=/opt/siege –with-ssl=no
make
make install
 
修改siege配置(若無此檔案,自行建立此檔案)
vi ~/.siegerc
verbose = false
concurrent = 50
delay = 1
internet = true
benchmark = true
 
 
[root@C5TDB1 bin]# cd /opt/siege/bin
[root@C5TDB1 bin]# ./siege -c 500 -r 10 -f web.url
上面是用500次並發重復測試10次web.url裏的url列表的結果
[root@C5TDB1 bin]# ./siege -c 500 -r 10 -f web.url
** SIEGE 3.0.5
** Preparing 500 concurrent users for battle.
The server is now under siege..      done.
 
Transactions:                   5000 hits       #測試500次,共有5000個Session
Availability:                 100.00 %                                    #100%到達
Elapsed time:                   6.40 secs                               #花費了6.4秒
Data transferred:               6.12 MB                                  #傳輸6.12MB
Response time:                  0.23 secs                              #回應花了0.23秒
Transaction rate:             781.25 trans/sec   #每秒傳輸781.25次
Throughput:                     0.96 MB/sec                       #每秒傳輸0.96MB
Concurrency:                  182.75                                            #並行傳輸182.75 
Successful transactions:           5000                                     #成功次數
Failed transactions:               0                                          #失敗次數
Longest transaction:            4.06                                          #最長傳輸時間
Shortest transaction:           0.00                                            #最知傳輸時間
 
 
設定檔說明:
設定檔的部份:
1.      verbose:要不要顯示過程。
2.      display-id:顯示過程的時候,要不要顯示模擬 user 的 id
3.      show-logfile:跑完之後要不要顯示 log 資訊
4.      logging:要不要 log 到檔案
5.      logfile:要 log 到檔案的話,檔名是什麼
6.      protocol:HTTP 通訊協定( HTTP/1.1 或 HTTP/1.0 兩者擇一)
7.      connection:keep-alive 表示模擬成 persistent connection( 寫 close 則反之)
8.      concurrent:模擬有幾個 user 來衝
9.      time:跑多久之後停止 ( H=hours, M=minutes, S=seconds)
10.  reps:每一個 concurrent 衝幾次。
11.  file: 多個目的url情形下的 url 檔案位置。
12.  url:單一 url 情形下的指定 url
13.  delay:非 benchmakr 行況下,每個模擬 user 隨機延遲 0 到這個數字(單位:秒)。
14.  timeout:socket connection timeout(單位:秒)。
15.  failures:socket 失敗次數(timeouts, connection failures) 到達這個數字就停下來。
16.  internet:隨機從 urls.txt 抓出 url,否則從 urls.txt 循序。
17.  benchmark:跑 benchmark模式的話, siege 將不會在每個 connection 間 delay,適合拿來做 load testing.
18.  user-agent:送出的 agent 識別
19.  login:WWW-Authenticate login( login = jdfulmer:topsecret:Admin )(非 form based)
20.  username,password:也是 login 用的(非 form based)
21.  Login URL:每一個模擬 user 都必需經過的第一個 login url( form based)
22.  proxy-host,proxy-port,proxy-login:使用 proxy 的話要填這個。(proxy-login: jeff:secret:corporate)
23.  follow-location:redirection support
24.  zero-data-ok:接不接受 zero-length data
25.  chunked:HTTP/1.1 需要 chunked encoding
 
 
第二套軟體:
Webbench:
wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
tar -zxvf webbench-1.5.tar.gz
cd webbench-1.5
make
make install
這樣就安裝完了。
使用方式:
 
webbench -c 50 -t 10 http://10.55.78.86/move/good.mpg
  -r  –reload              Send reload request – Pragma: no-cache.
  -t  –time <sec>          Run benchmark for <sec> seconds. Default 30.
  -c  –clients <n>         Run <n> HTTP clients at once. Default one.

所以上面的指令就是,同時有50個client 在發request,持續的時間為10秒。
然後就可以用這個時間去看一下Server 目前的狀況啦。

 
 
例如用 iftop 去看一下頻寬用了多少,然後access log,error log 等等。
webbench 執行完後,會顯示下面資訊:
 
[root@C5TDB1 webbench-1.5]# ./webbench -c 50 -t 10 http://10.55.78.86/
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
 
Benchmarking: GET http://10.55.78.86/
50 clients, running 10 sec.
 
Speed=52980 pages/min, 5650839 bytes/sec.
Requests: 8830 susceed, 0 failed.
 
查看系統的Session數
 
查看Windows,是80Port的Session數量
netstat -an | find “:80” /c
 
參考資料:
http://ching119.blogspot.tw/2011/12/web-bench.html
http://sikotec.wordpress.com/2008/03/30/siege-壓力模擬測試工具/