http://blog.51itrz.com/?p=60
之前给大家介绍了Web服务压力测试工具,现在再给大家介绍数据库的压力测试工具
一、下载 super-smack
下载地址:http://www.51itrz.com/soft/super-smack-1.3.tar.gz
二、编译及安装
./configure -with-mysql=/usr/local/mysql
make && make install
请根据测试的数据库来选择 –with-pgsql –with-oracle 或 –with-mysql
三、修改select-key.smack文件
将程序提供的 smack 样本文件重新拷贝一份,然后编辑此文件,填入相应的连接信息,比如用户名、密码、端口和测试所用的数据库名。
cp /usr/share/smacks/select-key.smack /usr/share/smacks/select-key.smack.bakvi /usr/share/smacks/select-key.smack
只需修改密码,其他不用修改
client “admin”
{ user “root”;
host “localhost”;
db “test”;
pass “1234″;
socket “/tmp/mysql.sock”; // this only applies to MySQL and is
// ignored for PostgreSQL
}
四、使用方法
super-smack -d mysql /usr/share/smacks/select-key.smack 10 1000
* 10代表10个客户端同时接入,1000代表每个客户端的查询次数(脚本中,对查询次数做了翻倍处理)
* max、min、avg为客户端最大、最小、平均连接时间
* num_queries、max_time、min_time为总请求次数,最大、最小查询时间(以毫秒为单位)
* q_per_s为每秒处理的请求数
五、常见问题
问题1: # super-smack —d mysql select-key-mysql.smack 10 1000
super-smack: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
解决:cp /usr/local/mysql/lib/libmysqlclient.so.15 /usr/lib
问题2: # super-smack —d mysql select-key-mysql.smack 10 1000
super-smack: Could not open input file select-key.smack errno = 2, error is No such file or directory
解决:super-smack -d mysql /usr/share/smacks/select-key.smack 10 100
注意需要指定select-key.smack 文件的具体位置,否则会出现上面的错误提示
六、正常使用的范例
Select测试:
[root@localhost super-smack-1.3]# super-smack -d mysql /usr/share/smacks/select-key.smack 10 1000
Query Barrel Report for client smacker1
connect: max=117ms min=0ms avg= 25ms from 10 clients
Query_type num_queries max_time min_time q_per_s
select_index 20000 0 0 27913.04
这表示 super-smack 运行了10个用户执行1000次轮询,共执行20000次查询,客户连接最长时间为117毫秒,最短的则没有延迟,平均时间为25毫秒。
Super-smack 总共执行了20000此查询,每个查询所花时间都小于1毫秒。整个测试期间,服务端平均每秒执行了27913.04次 select_index 型查询。
Update测试:
[root@localhost super-smack-1.3]# super-smack -d mysql /usr/share/smacks/update-select.smack 500 10
Query Barrel Report for client smacker
connect: max=51ms min=0ms avg= 3ms from 500 clients
Query_type num_queries max_time min_time q_per_s
select_index 5000 20 0 2241.54
update_index 5000 38 0 2241.54
这表示 super-smack 运行了500个客户,,共执行5000次查询和5000次更新,客户连接最长时间为51毫秒,最短的则没有延迟,平均时间为3毫秒。
Super-smack 总共执行5000次查询和5000次更新,每个更新所花最长时间38毫秒。整个测试期间,服务端平均每秒执行了2241.54次 update_index 型查询。