天天看点

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