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
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.
-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 執行完後,會顯示下面資訊:
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
參考資料: