• 博客访问: 13963120
  • 博文数量: 1488
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-14 23:24
  • 认证徽章:
个人简介

每日发文,或技术、或总结,偶有日间小事也以为记,谓之学习笔记,成年累月1500多天,中间几乎没有间断,要旨只有一个:学习交流,共同进步 。 学习笔记精华整理,个人新书《Oracle DBA工作笔记》已开售,在京东,当当,亚马逊,淘宝,天猫均有售,欢迎选购。

文章分类

全部博文(1488)

文章存档

2018年(132)

2017年(320)

2016年(356)

2015年(346)

2014年(270)

2013年(43)

2012年(21)

分类: MySQL

2017-03-24 23:56:59

  今天来说说两款压测工具sysbench,swingbench,早些时候傻傻分不清楚,其实两个差别大了去了。  

swingbench

 先来说说swingbench,这款工具是Oracle英国的一个员工用Java开发的,没想到一下子成了压测Oracle的不二之选。当然Oracle还有不少这样的工具,比如DUL(Data UnLoader),是新西兰的一个员工用c开发,一个可以直接读取数据文件的工具,基本是ACS部门在提供高级服务所用。还有一款是SQLT也叫作SQLTXPLAIN,是Oracle Server Technologies Center of Expertise - ST CoE 提供的一款工具,可以通过MOS ID(ID 215187.1)下载,当然这样的工具还不少。

   回到我们的话题,swingbench因为基于Java的原因,所以跨平台的支持还是很不错的。基本上我们是在Windows平台上测试服务端的数据库性能,用到了Java,那么使用JDBC是很自然的一件事情。

swingbench的设计风格是完全的组件化,每个组件可以单独抽出来使用,所以你如果到支持的站点去查看。宣传的组件图还是很霸气的。比如swingbench的主界面,数据生成器,追踪分析。

还有更炫的。监控数据库的多项指标,DB time等。这效果和商用的spotlight监控有一拼。

   毫无疑问,swingbench是个好东西,一个工具箱继续发扬光大,得靠大家的使用和推广普及。有句话说得好,世上只有两种工具,一种是被人骂的,另一种是没人用的,被骂的越多,侧面反映出关注度越高,使用率越高,越用越成熟,这个MySQL就是一个很不错的例子。

   swingbench支持的功能如此丰富,可以指定多个数据仓库,可以生成指定大小的数据,测试是基于订单业务,模拟的场景更加丰富,它有什么缺点吗?有的。

    首先个人感觉最大的一点是它只支持Oracle,其实基于JDBC就是一个轻量级的接口,可以连接多种数据库。数据库工具松鼠就是这样,一个JDBC可以适配很多的数据库。如果在这一点上有所突破,我觉得还是有很大的潜力的。

    还有基于这个工具的特性,支持Oracle平台,似乎离开源社区还有一定的距离,尽管这个工具确实是开源的,我查了下github上暂时还没有看到,目前的支持是通过站点来维护的,目前最新的版本是2.6,已经支持12c.  

sysbench

   这款工具和swingbench有一个共同点,那就是它也是Oracle的一个员工开发的,不过属于MySQL team,后来到了Percona.

一个公司竟然能够产出两种风格的软件,和本身支持的数据库是有明显的关系的,这句话可能比较绕。我逐渐展开来说,先说说我最近安装,使用sysbench的一些感受。

   如果使用sysbench比较早一些的版本,应该就是0.4.12了。这个版本最早也是有一个单独的站点来维护的,目前已经全面转移到github上了。

   这个工具基于c开发,目前支持的数据库种类很丰富。

# find . -name "drv*.c"
./drizzle/drv_drizzle.c
./pgsql/drv_pgsql.c
./mysql/drv_mysql.c
./oracle/drv_oracle.c
./attachsql/drv_attachsql.c其中MySQL,这是原生支持,默认就有的。还支持PostgreSQL和Oracle,还有一个MySQL的分支drizzle也是支持的。

    0.4.12的版本很多年前就在用,优点很多,可以压测内存,CPU,IO,mutext等都可以测试,支持的数据库压测是其中的一个部分。这部分功能基于c的优势就很明显了。

     但是0.4.12这个版本限制还是比较多,比如只能基于一个数据库的一个一个表来压测,这一点来说限制就很大了。所以能够测试的场景还是很有限的。

     到了0.5的版本,这个情况改观了,可以一个库里多表了,而且可以设置interval参数来查看一个实时的变化了。因为它支持Oracle,所以我就很有兴趣的测试了一下,结果让我有点受挫。

为什么呢,0.5的版本中安装Oracle,主要就是一个动态链接库的配置要到位,但是配置好之后要开启测试的时候,发现数据库的驱动选择了oracle,但是测试却提示unknown database,带着疑问细看,原来测试的模板里竟然没有Oracle.这个怎么办自己动手丰衣足食,不过要写还确实有难度,为什么呢,因为模板是基于脚本语言Lua的,这又多了一道坎。

    不过行业里也有不少朋友写了一些Lua的模板可以参考。

这里我诉诉苦,那就是sysbench最新版本是1.0.3,我想新版本支持Oracle应该已经做得很好了,看官方的提示,对于Oracle安装还单独提供了一个README-Oracle.md,但是里面的安装提示还是和我预期的有一些差别。

   首先是安装的客户端,目前提供的是12c的精简版,这个没有问题,但是基于的操作系统是ubuntu 14,对于Oracle企业版来说是没有官方认证的,Linux版本Oracle官方可查到的,支持的系统基本是下面的这几个,版本会有一些变化。

Red Hat Enterprise Linux AS/ES
Oracle Enterprise Linux  ( OEL)
SUSE Linux Enterprise Server
AsianuxUbuntu也是Linux,但是后面的安装就让我有了不少的难度,需要安装Cuda,而且是使用dpkg,这部分很陌生,查了下原来dpkg 是Debian package的简写,为"Debian" 操作系统专门开发的套件管理系统,用于软件的安装,更新和移除。
   安装一套Cuda环境,我查了下,要花的功夫还真不少,最后辗转尝试,算是放弃了。

  于是回到0.5的版本来,配置了动态链接库,很快就配置好了,但是没有Lua模板,这个时候可以参考osdba提供的一套定制版,可以支持MySQL,Oracle,PostgreSQL,我试了下,还不错。

  整个过程如果使用git分分钟即可搞定。

抓取sysbench的安装部分

# git clone  https://github.com/osdba/sysbench_bin.git然后抓取Lua脚本部分

# git clone https://github.com/osdba/sysbench_lua  然后创建一个sysbench目录,把抓取到的两个目录整合起来。

# mkdir sysbench
# cd sysbench
# cp ../sysbench_bin/bin/* .
# cp -r ../sysbench_lua/lua . 这样一来目录下就有了3个执行文件,和直接使用sysbench的命令方式基本一样,只是有所侧重。

-rwxr-xr-x 1 root root 3307216 Mar 24 16:09 sysbench_mysql
-rwxr-xr-x 1 root root 3324397 Mar 24 16:09 sysbench_ora
-rwxr-xr-x 1 root root 3253979 Mar 24 16:09 sysbench_pg

小结

这两个压测工具还是有很鲜明的特点,也有自己固有的缺点,但是瑕不掩瑜,它们都有自己擅长的领域和亮点特性。所以测试还是得看场景,基准测试真是一块硬骨头。



  

   

阅读(645) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册

/gpw/168A.html /88410/064w.html /bosoo/774v.html /boss/582K.html /ks/772x.html /55901/545C.html /bg88/615Z.html /bbs/841N.html /1088/626w.html /888/311J.html /123/651X.html /ggs/611r.html /0088/770t.html /ymw/622z.html /bg88/632M.html /wb/206p.html /bbs/765b.html /gupiao/265o.html /bbs/757e.html /1088/522s.html /ymw/322Z.html /8848/310s.html /bbsy/882E.html /pmw/637G.html /8888/203R.html /bbs/813b.html /123/015L.html /daxue/812i.html /ymw/652I.html /bosoo/358z.html /daxue/073j.html /bbs/765g.html /1088/858d.html /bosoo/374v.html /8888/478d.html /bosoo/156v.html /ks/415C.html /55901/174U.html /wb/233o.html /888/882v.html /wb/463d.html /gpw/786d.html