mysql压力测试工具


Super-smack 是一个强大的广受赞誉的压力测试工具,支持MySQL和PostgreSQL。这个工具程序现在由 Tony Bourke 维护。

 

安装
Super-smack 现在是1.3版,源码下载地址如下:
http://vegan.net/tony/supersmack/super-smack-1.3.tar.gz

./configure―with-mysql―with-pgsql
根据需要,可以只保留 MySQL 和 PostgreSQL 中的一个。如果你的 client library 安装在其他目录,你要指明它,例如:
./configure―with-mysql=/opt/mysql
然后
make
su
make install

PS. FreeBSD 下面有 ports 的,安装起来更方便。


使用
将程序提供的 smack 样本文件重新拷贝一份,然后编辑此文件,填入相应的连接信息,比如用户名、密码、端口和测试所用的数据库名。
cp /usr/share/smacks/select-key.smack select-key-mysql.smack

开始运行
super-smack ―d mysql select-key-mysql.smack 10 1000

 

10 是连接客户的数目,每个客户有100次轮询。

 

结果
Query Barrel Report for client smacker1
connect: max=66ms min=0ms avg= 66ms from 10 clients
Querytype numqueries maxtime mintime qpers
select_index 20000 0 0 4360.61

 

这表示 super-smack 运行了10个客户,客户连接最长时间为66毫秒,最短的则没有延迟,平均时间为62毫秒。Super-smack 总共执行了20000此查询,每个查询所花时间都小于1毫秒。整个测试期间,服务端平均每秒执行了4360.61次 select_index 型查询。
max、min、avg为客户端最大、最小、平均连接时间,num_queries、max_time、min_time为总请求次数,最大、最小查询时间(以毫秒为单位),q_per_s为每秒处理的请求数。

 

另外,可以修改 smack文件中 相应的参数以符合你的测试要求。

Files:
/usr/local/bin/gen-data
/usr/local/bin/super-smack
/usr/local/share/super-smack/select-key.smack
/usr/local/share/super-smack/update-select.smack

 

 


1. 源:http://vegan.net/tony/supersmack/

2. 安装:

注意在编译时,可以先把对应的libmysqlclient.so.*拷贝到/usr/lib

3. 测试:

[root@DB_Backup smacks]# super-smack -d mysql select-key.smack 10 10000
Query Barrel Report for client smacker1
connect: max=37ms min=0ms avg= 10ms from 10 clients
Query_type num_queries max_time min_time q_per_s
select_index 200000 0 0 10148.47

[root@DB_Backup smacks]# super-smack -d mysql update-select.smack 10 1000
Query Barrel Report for client smacker
connect: max=2ms min=0ms avg= 0ms from 10 clients
Query_type num_queries max_time min_time q_per_s
select_index 10000 1 0 4038.90
update_index 10000 1 0 4038.90

在以上测试结果中

10代表10个客户端同时接入,1000代表每个客户端的查询次数(脚本中,对查询次数做了翻倍处理)

max、min、avg为客户端最大、最小、平均连接时间

num_queries、max_time、min_time为总请求次数,最大、最小查询时间(以毫秒为单位)

q_per_s为每秒处理的请求数

==========================================

1.下载软件 
http://vegan.net/tony/supersmack/

2.编译安装 

./configure --prefix=/usr/local/supersmack --with-mysql --with-mysql-lib=/usr/local/mysql/lib/mysql/ --with-mysql-include=/usr/local/mysql/include/mysql/ 

注意红色字体代表的目录,并不是默认的mysql/lib和mysql/include 
[root@mysql super-smack-1.3]# make

[root@mysql super-smack-1.3]# make install

3.配置测试信息

[root@mysql bin]# cp /usr/share/smacks/select-key.smack /usr/local/supersmack/bin/

[root@mysql bin]# cp /usr/local/supersmack/bin/* /usr/bin/


修改select-key.smack 里面的帐号密码及测试使用的数据库。

4.开始测试

  测试myiasm引擎 

select-key性能

[root@mysql bin]# super-smack -d mysql select-key.smack 10 1000
./super-smack: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory 


缺少库文件,将该文件CP到系统目录下

# cp /usr/local/mysql/lib/mysql/libmysqlclient.so.16 /usr/lib 


如果无法载入数据,则按以下方法处理

/usr/local/supersmack/bin/gen-data -n 90000 -f %12-12s%n,%25-25s,%n,%d>/var/smack-data/words.dat 


再次运行测试

[root@mysql bin]# ./super-smack -d mysql select-key.smack 100 200
Query Barrel Report for client smacker1
connect: max=391ms  min=1ms avg= 51ms from 100 clients 
Query_type num_queries max_time min_time q_per_s
select_index 40000 0 0 3713.30 


100用户执行200次轮询,共执行40000次查询

update-select性能

[root@mysql bin]# ./super-smack -d mysql update-select.smack 100 200
Query Barrel Report for client smacker
connect: max=2300ms  min=1ms avg= 70ms from 100 clients 
Query_type num_queries max_time min_time q_per_s
select_index 20000 18 0 1428.06
update_index 20000 20 0 1428.06 


innodb测试

mysql> alter table http_auth engine=innodb;
Query OK, 90000 rows affected (1.85 sec)
Records: 90000  Duplicates: 0  Warnings: 0 


select-key

[root@mysql bin]# ./super-smack -d mysql select-key.smack 100 200
Query Barrel Report for client smacker1
connect: max=683ms  min=1ms avg= 59ms from 100 clients 
Query_type num_queries max_time min_time q_per_s
select_index 40000 0 0 3694.71

update-select
[root@mysql bin]# ./super-smack -d mysql update-select.smack 100 200
Query Barrel Report for client smacker
connect: max=1208ms  min=1ms avg= 57ms from 100 clients 
Query_type num_queries max_time min_time q_per_s
select_index 20000 253 0 672.55
update_index 20000 87 0 672.55

 

你可能感兴趣的:(mysql压力测试工具)