天天看点

mysql性能测试和压力工具

三个测试工具:The MySQL Benchmark Suite、MySQL super-smack、MyBench。除了第一个为性能测试工具,其他两个都为压力测试工具。

1. The MySQL Benchmark Suite

这个测试工具是随着MySQL绑定发行的,基于Perl语言和其中的两个模块:DBI和Benchmark。如果有需要,它支持所有支持DBI驱动的数据库。可以通过修改bench-init.pl的选项以符合需要。另外提醒的是,它不支持多CPU。

进行测试时,执行run-all-tests脚本,具体的命令选项请看README。

2. MySQL super-smack

这是一个强大的广受赞誉的压力测试工具,支持MySQL和PostgreSQL。

http://jeremy.zawodny.com/mysql/super-smack/

安装很简单,请先仔细阅读目录里的指导文件。

Preparing test data

做测试时,最好用自己的数据。因为使用真实的数据,使测试变得接近现实和客观。

Configuration

smack的文件设置,看起来很简单。

3. MyBench: A Home-Grown Solution

MyBench一种基于Perl语言易于扩展的测试工具。

http://jeremy.zawodny.com/mysql/mybench/

#######################################################################

Super-smack 是一个强大的广受赞誉的压力测试工具,支持MySQL,PostgreSQL和ORACLE。这个工具程序现在由 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 型查询。

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