天天看點

super-smack

我有個辦法,不過不是用LR,是用super-smack,如果隻對資料庫進行抗壓力測試,應該管用。

Super-smack 現在是1.3版,源碼下載下傳位址如下:

<a href="http://vegan.net/tony/supersmack/super-smack-1.3.tar.gz" target="_blank">http://vegan.net/tony/supersmack/super-smack-1.3.tar.gz</a>

以下是在linux下的安裝及使用方法:

Super smack是一個基準套件。Super-smack是它的一個腳本工具。

可以用來測試myisam和innodb 還有ndb。

安裝:用root使用者

./configure—with-mysql=/usr/local/mysql5

Make

Make install

使用:(複制到哪都行)

cp –r /src/smacks  /home

修改使用者名、密碼、資料庫名(上下總共兩個地方)

測試:

# super-smack -d mysql select-key.smack 10 1000

或者

# super-smack -d mysql update-select.smack 10 1000

作者隻提供了select-key.smack和update-select.smack這兩個測試包。

執行:

結果:

Query Barrel Report for client smacker1

connect: max=156ms  min=0ms avg= 21ms from 10 clients

Query_type      num_queries     max_time        min_time        q_per_s

select_index    20000   0       0       16299.96

這裡10是連接配接客戶的數目。每個客戶有100次輪詢。

這表示super-smack運作了10個客戶,客戶連接配接最長時間為156毫秒,最短的則沒有延遲,平均時間是21毫秒。super-smack總共執行了20000此查詢,每個查詢所花時間都小于1毫秒。整個測試期間,伺服器端平均每秒執行了16299.96次select_index型查詢。

/////////修改使用者名、密碼、資料庫名

#vi select-key.smack或者#vi update-select.smack

第一行下面

client "admin"

{

user "root";

host "localhost";

db "test";

pass "";

socket "/tmp/mysql.sock"; // this only applies to MySQL and is

// ignored for PostgreSQL

}

// ensure the table exists and meets the conditions

table "http_auth"

中間靠下:

client "smacker1"

user "test"; // connect as this user

pass ""; // use this password

host "localhost"; // connect to this host

db "test"; // switch to this database

query_barrel "2 select_by_username"; // on each round,

// run select_by_username query 2 times