天天看點

網站壓力測試[2]

Siege:壓力模拟/測試工具

Siege(英文意思是圍攻)是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力:可以根據配置對一個WEB站點進行多使用者的并發通路,記錄每個使用者所有請求過程的相應時間,并在一定數量的并發通路下重複進行。

最早使用的壓力測試工具是apache的ab(apache benchmark),apache ab做重複壓力測試不錯,但是每次隻能測試一個連結,如何測試一組連結(比如從日志中導出的1個小時的日志,做真實壓力測試),後來找到了這個。

Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力:可以根據配置對一個WEB站點進行多使用者的并發通路,記錄每個使用者所有請求過程的相應時間,并在一定數量的并發通路下重複進行。

SIEGE is an http regressive testing and benchmarking utility. It was designed to let web developers measure the performance of their code under duress, to see how it will stand up to load on the internet. It lets the user hit a webserver with a configurable number of concurrent simulated users. Those users place the webserver "under siege." The duration of the siege is measured in transactions, the sum of simulated users and the number of times each simulated user repeats the process of hitting the server. Thus 20 concurrent users 50 times is 1000 transactions, the length of the test.

下載下傳/安裝

Siege時一個開放源代碼項目:http://www.joedog.org/siege/

下載下傳:

wget ftp://sid.joedog.org/pub/siege/siege-latest.tar.gz

安裝:

%./configure ; make

#make install

siege包含了一組壓力測試工具:

SIEGE (1) Siege是一個HTTP壓力測試和評測工具.

使用樣例:

任務清單:www.chedong.com.url檔案

http://www.chedong.com/tech/

http://www.chedong.com/tech/acdsee.html

http://www.chedong.com/tech/ant.html

http://www.chedong.com/tech/apache_install.html

http://www.chedong.com/tech/awstats.html

http://www.chedong.com/tech/cache.html

http://www.chedong.com/tech/click.html

http://www.chedong.com/tech/cms.html

http://www.chedong.com/tech/compress.html

http://www.chedong.com/tech/cvs_card.html

http://www.chedong.com/tech/default.html

http://www.chedong.com/tech/dev.html

http://www.chedong.com/tech/gnu.html

....

siege -c 20 -r 2 -f www.chedong.com.url

參數說明:

-c 20 并發20個使用者

-r 2 重複循環2次

-f www.chedong.com.url 任務清單:URL清單

輸出樣例:

** Siege 2.59

** Preparing 20 concurrent users for battle. 這次“戰鬥”準備了20個并發使用者

The server is now under siege.. done. 服務在“圍攻”測試中:

Transactions: 40 hits 完成40次處理

Availability: 100.00 % 成功率

Elapsed time: 7.67 secs 總共用時

Data transferred: 877340 bytes 共資料傳輸:877340位元組

Response time: 1.65 secs 相應用時1.65秒:顯示網絡連接配接的速度

Transaction rate: 5.22 trans/sec 平均每秒完成5.22次處理:表示伺服器背景處理的速度

Throughput: 114385.92 bytes/sec 平均每秒傳送資料:114385.92位元組

Concurrency: 8.59 最高并發數 8.59

Successful transactions: 40 成功處理次數

Failed transactions: 0 失敗處理次數

注意:由于速度很快,可能會達不到并發速度很高就已經完成。Response time顯示的是測試機器和被測試伺服器之間網絡連結狀況。Transaction rate則表示伺服器端任務處理的完成速度。

輔助工具:

增量壓力測試:

為了友善增量壓力測試,siege還包含了一些輔助工具:

bombardment (1)

是一個輔助工具:用于按照增量使用者壓力測試:

使用樣例:

bombardment urlfile.txt 5 3 4 1

初始化URL清單:urlfile.txt

初始化為:5個使用者

每次增加:3個使用者

運作:4次

每個用戶端之間的延遲為:1秒

輸出成CSV格式:

siege2csv.pl (1)

siege2csv.pl将bombardment的輸出變成CSV格式:

Time Data Transferred Response Time Transaction Rate Throughput Concurrency Code 200 (note that this is horribly broken.)

242 60.22 603064 0.02 4.02 10014.35 0.08

605 59.98 1507660 0.01 10.09 25136.05 0.12

938 59.98 2337496 0.02 15.64 38971.26 0.26

1157 60 2883244 0.04 19.28 48054.07 0.78

參考:

開源測試工具:http://www.opensourcetesting.org/performance.php

壓力測試工具:HammerHead 正在試用中

[From: http://weblog.chedong.com/archives/000033.html]