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.
所以上面的指令就是,同時有50個client 在發request,持續的時間為10秒。
然後就可以用這個時間去看一下Server 目前的狀況啦。
-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
參考資料: