Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1398392
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: Mysql/postgreSQL

2013-01-19 22:54:15

     mysqlslap 可以考虑用来构建复杂业务的数据库访问的测试用例;可以分别构建读、写、混合的测试负载;

                  可以进行多表测试;可以执行比较大的并发测试;不同引擎的测试;

                  可以配置参与测试的表的列的类型,这算是比较好的测试选项。

                  但是测试的请求执行时的灵活性不够大,是重复执行的,随机性需要测试人员自己来控制;

                  同时测试数据的准备和清理过程没有分离,大型的测试准备工作没法复用;

                   它也没有提供测试结果的图形化输出。

                   总之,mysqlslap算是一个比较底层的测试工具,能对mysql服务器测试提供原生的一些支持。

                   mysqlslap可以做复杂业务的数据库访问的基线测试,但是要做比较大的改造。

                  

 

     sysbench 可以考虑用来做数据库服务器的一个简单的性能基线测试,可以综合利用它还可测试CPU,磁盘IO的数据来进行

                   系统分析。

                   可以提供比较数据库测试比较专业的测试结果;也能做读、写、混合的测试;支持带存储过程的混合测试;

                   测试的准备过程与清理过程是分离的。

                   但是不支持多表测试;测试用例不能自定义;

   

     super smack  提供量化负载加载;可以在内部或外部产生测试数据;不同的连接上可以执行不同的查询语句;

                       测试数据可以随机化,因此也就决定了super smack可以用来模拟复杂业务的数据库访问。

                       甚至super smack可以用来模拟真实用户上线后访问数据库的压力。

    

     mysqlslap  可以通过改造测试数据的准备和清理过程来缩短测试的时间

     sybench 改进的余地比较小,可以通过升级到0.5版提供多表的测试。

 

     再来看测试工具的测试模型,这个模型决定了能否满足我们的测试需求。

            mysqlslap

                   并发模型

                          多线程模式,每个线程一个连接,不是大并发的模型,大并发模型一般是连接模型与处理模型分离。

                          话又说回来,如果是连接模型与处理模型分离,那么就是变成了服务器了。

                   压力模型

                          每个连接上多次执行请求,请求是完全相同的,不能随机。

                          每个连接/线程是独立的。

                          不支持分布式来构建压力

           sysbench

                    并发模型

                           多线程模型,每个线程对应一个连接

                   压力模型

                          每个连接上多次执行请求,请求随机构造,并支持事务测试

                          所有的连接/线程共享请求执行的总数

                          不支持分布式来构建压力

          super-smack

                   并发模型

                          多进程模型,每个进程对应一个连接,可以扩展至多个连接

                    压力模型

                         每个连接上多次执行请求,同一个连接上执行的多次请求是随机的;

                         每个连接执行的请求也是不同的。

                         所有的连接/进程是独立的。

                        不支持分布式来构建压力

 

     后续有需要,会使用tpcc,tpch,tsung来测试mysql

                        

                          

                         

                   

                         

                 

    

阅读(2507) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~