- 軟件大?。?span>0KB
- 軟件語(yǔ)言:英文
- 軟件類型:國(guó)外軟件
- 軟件類別:免費(fèi)軟件 / 服務(wù)器區(qū)
- 更新時(shí)間:2017-03-10 17:19
- 運(yùn)行環(huán)境:WinXP
- 軟件等級(jí):
- 軟件廠商:
- 官方網(wǎng)站:http://www.joedog.org/
8.14M/中文/10.0
0KB/中文/10.0
13.00M/中文/10.0
17.49M/中文/0.0
650KB/中文/10.0
Siege是一個(gè)壓力測(cè)試和評(píng)測(cè)工具,設(shè)計(jì)用于WEB開發(fā)這評(píng)估應(yīng)用在壓力下的承受能力:可以根據(jù)配置對(duì)一個(gè)WEB站點(diǎn)進(jìn)行多用戶的并發(fā)訪問(wèn),記錄每個(gè)用戶所有請(qǐng)求過(guò)程的相應(yīng)時(shí)間,并在一定數(shù)量的并發(fā)訪問(wèn)下重復(fù)進(jìn)行。
Siege 2.73b1 發(fā)布,該版本修復(fù)了 kfreebsd-* 內(nèi)核下的編譯問(wèn)題,同時(shí)利用 /dev/urandom 來(lái)提升隨機(jī)性。
編譯安裝
wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-2.72/
./configure
make
make install
通過(guò)包安裝
Debian/ubuntu
apt-get install siege
yum install siege
二、參數(shù)詳解
命令行參數(shù)說(shuō)明:
-C,或–config 在屏幕上打印顯示出當(dāng)前的配置,配置是包括在他的配置文件HOME/.siegerc
-f FILE, –file=FILE 指定用特定的urls文件運(yùn)行siege ,默認(rèn)為urls.txt,位于siege 安裝目錄下的etc/urls.txt
-u URL,–url=URL 測(cè)試指定的一個(gè)URL,對(duì)它進(jìn)行”siege “,此選項(xiàng)會(huì)忽略有關(guān)urls文件的設(shè)定
-b 進(jìn)行壓力測(cè)試,不進(jìn)行延時(shí)。
-A, —user-agent=”text” 設(shè)置請(qǐng)求的User-Agent
siegerc設(shè)定檔說(shuō)明:
verbose :要不要顯示過(guò)程。
display-id :顯示過(guò)程的時(shí)候,要不要顯示模擬user的id
show-logfile :跑完之后要不要顯示log資訊
logging :要不要log到檔案
logfile :要log到檔案的話,檔名是什么
protocol :HTTP通訊協(xié)定( HTTP/1.1或HTTP/1.0 兩者擇一)
connection :keep-alive表示模擬成persistent connection(寫close則反之)
concurrent :模擬有幾個(gè)user來(lái)沖
time :跑多久之后停止( H=hours, M=minutes, S=seconds)
reps :每一個(gè)concurrent沖幾次。
file :多個(gè)目的url情形下的url檔案位置。
url :?jiǎn)我籾rl情形下的指定url
delay :非benchmakr行況下,每個(gè)模擬user隨機(jī)延遲0到這個(gè)數(shù)字(單位:秒)。
timeout :socket connection timeout(單位:秒)。
failures :socket失敗次數(shù)(timeouts, connection failures)到達(dá)這個(gè)數(shù)字就停下來(lái)。
internet :隨機(jī)從urls.txt抓出url,否則從urls.txt循序。
benchmark :跑benchmark模式的話,siege將不會(huì)在每個(gè)connection間delay,適合拿來(lái)做load testing.
user-agent :送出的agent識(shí)別
login :WWW-Authenticate login( login = jdfulmer:topsecret:Admin )(非form based)
username,password :也是login用的(非form based)
Login URL :每一個(gè)模擬user都必需經(jīng)過(guò)的第一個(gè)login url( form based)
proxy-host,proxy-port,proxy-login :使用proxy的話要填這個(gè)。(proxy-login: jeff:secret:corporate)
follow-location :redirection support
zero-data-ok :接不接受zero-length data
chunked :HTTP/1.1需要chunked encoding
三、用法舉例
siege -c 300 -r 100 -f url.txt
說(shuō)明:-c是并發(fā)量,-r是重復(fù)次數(shù)。url.txt就是一個(gè)文本文件,里面是要測(cè)試的url,url.txt每行都是一個(gè)url。
urls.txt文件是很多行待測(cè)試URL的列表以換行符斷開,格式為:
[protocol://]host.domain.com[:port][path/to/file]
url.txt內(nèi)容:
http://192.168.80.166/01.jpg
http://192.168.80.166/02.jpg
http://192.168.80.166/03.jpg
http://192.168.80.166/04.jpg
http://192.168.80.166/05.jpg
http://192.168.80.166/06.jpg
結(jié)果說(shuō)明:
** SIEGE 2.72
** Preparing 10 concurrent users for battle.
The server is now under siege.. done.
Transactions: 300 hits #已完成的事務(wù)總署
Availability: 100.00 % #完成的成功率
Elapsed time: 0.08 secs #總共使用的時(shí)間
Data transferred: 0.94 MB #響應(yīng)中數(shù)據(jù)的總大小
Response time: 0.00 secs #顯示網(wǎng)絡(luò)連接的速度
Transaction rate: 3750.00 trans/sec #平均每秒完成的事務(wù)數(shù)
Throughput: 11.79 MB/sec #平均每秒傳送的數(shù)據(jù)量
Concurrency: 8.50 #實(shí)際最高并發(fā)鏈接數(shù)
Successful transactions: 300 #成功處理的次數(shù)
Failed transactions: 0 #失敗處理的次數(shù)
Longest transaction: 0.01 #最長(zhǎng)事務(wù)處理的時(shí)間
Shortest transaction: 0.00 #最短事務(wù)處理時(shí)間
四、常用的siege命令舉例
200個(gè)并發(fā)對(duì)www.google.com發(fā)送請(qǐng)求100次
siege -c 200 -r 100 http://www.google.com
在urls.txt中列出所有的網(wǎng)址
siege -c 200 -r 100 -f urls.txt
隨機(jī)選取urls.txt中列出所有的網(wǎng)址
siege -c 200 -r 100 -f urls.txt -i
delay=0,更準(zhǔn)確的壓力測(cè)試,而不是功能測(cè)試
siege -c 200 -r 100 -f urls.txt -i -b
指定http請(qǐng)求頭 文檔類型
siege -H "Content-Type:application/json" -c 200 -r 100 -f urls.txt -i -b
五、Siege使用的一些總結(jié)
發(fā)送post請(qǐng)求時(shí),url格式為:http://www.xxxx.com/ POST p1=v1&p2=v2
如果url中含有空格和中文,要先進(jìn)行url編碼,否則siege發(fā)送的請(qǐng)求url不準(zhǔn)確
siege自身感覺(jué)也是有瓶頸的,并發(fā)數(shù)最大也就1000,再提高就會(huì)報(bào)下面這樣的錯(cuò)誤
[error] socket: unable to connect sock.c:222: Operation already in progress socket: connection timed out
這樣最終導(dǎo)致測(cè)試結(jié)果怎么都沒(méi)法超過(guò)2W每秒的請(qǐng)求,所以就把siege -c 1000 -r 100 -i -b -f url.txt 放到shell中并發(fā)執(zhí)行
#!/bin/bash
user_agent="Siege 1.0"
siege_rc="siege.rc"
concurrent=150
repet=200
siege_single_urls="singleurl.txt"
siege_prefix_urls="prefixurl.txt"
for i in {1..10}
do
siege -c $concurrent -r $repet -i -b -f $siege_single_urls -R $siege_rc -A "$user_agent" &;
done
請(qǐng)描述您所遇到的錯(cuò)誤,我們將盡快予以修正,謝謝!
*必填項(xiàng),請(qǐng)輸入內(nèi)容