2013/11/01

Published 11月 01, 2013 by

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次並發重復測試10web.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次,共有5000Session
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.      protocolHTTP 通訊協定( HTTP/1.1 HTTP/1.0 者擇一)
7.      connectionkeep-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.  timeoutsocket connection timeout(單位:秒)
15.  failuressocket 失敗次數(timeouts, connection failures) 到達這個數字就停下來。
16.  internet:隨機從 urls.txt 抓出 url,否則從 urls.txt 循序。
17.  benchmark:跑 benchmark模式的話, siege 將不會在每個 connection delay, 適合拿來做 load testing.
18.  user-agent:送出的 agent 識別
19.  loginWWW-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-locationredirection support
24.  zero-data-ok:接不接受 zero-length data
25.  chunkedHTTP/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.

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



例如用 iftop 去看一下頻寬用了多少,然後access logerror 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,是80PortSession數量
netstat -an | find “:80” /c

參考資料: