swingbench压测Oracle小记(r12笔记第19天)

   之前也分享过一篇关于swingbench测试Oracle的文章,也算是一个起步了。

   新业务要上线,不跑个压力测试还真说不过去,当然我比较喜欢swingbench的一点就是它可以模拟一些OLTP的场景,比如订单类业务,新建客户,订购,下单等这样一个流程的操作算是一个模拟真实的事务。

    当然swingbench还有几个地方做得挺有特色,一个是我们压力测试是指定数据量,比如1G,5G,100G,初始化数据就会按照这个基线来进行数据的分布。

  swingbench的配置,其实有了图形界面,其实难度就会大大降低。这里需要注意几点,首先就是配置连接串的地方,格式是swingbench特有的方式,如下面标红所示。

然后就是需要注意表空间的情况,这里比较赞的是可以根据你预期的数据量来预估需要多少物理空间,比如10G的数据,物理层面需要准备数据文件大概在32G,因为还有索引等需要消耗空间,临时表空间的大小也考虑到了,这个是在创建索引的部分会大量用到。

对于数据初始化的速度,其实还是可以的,每秒20万左右。

昨天尝试sysbench初始化Oracle数据,运行了一晚上,竟然只初始化了总共1000万的数据,放在这里也就几分钟就搞定。

务必需要注意的一个问题

这里有一个问题务必需要注意,那就是配置的时候需要一个DBA用户,默认我们赋予DBA角色之后,还需要确认如下的语句可以正确执行。

grant execute on dbms_lock to <新用户>;
否则,你如果初始化大量的数据,漫长的等待之后,就会抛出下面的错误。可以看到持续了一个半小时,最后还是提示失败。浪费时间不说,还浪费感情。

如果碰到这类问题,细细查看,就会发现里面创建了一个包体,包体是编译失败的,如果要逐步修复,那这个工作量还真不小。

   希望大家测试的时候,都是一步到位,能够看到如下的界面。

文本方式创建数据

当然需要说明的是,如果确实通过windows环境连接有困难,文本模式也是可以的,可以使用如下的命令来做,如果猛一看命令还蛮复杂,其实不要自己给自己压力,这些选项都有详细的解释。

./oewizard  -s -c oewizard.xml -allindexes  -ts users -tc 16 -v -cl -scale 50 -create这个命令的含义简单说一下,-s是静默,-c是指定配置文件,就是oewizard.xml,-allindexes是支持所有的索引类型,-ts是指定表空间为users,
-tc 是并发度,-scale是数据量,50就是50G,然后最后一个参数create是创建数据。

使用swingbench压测

使用swingbench压测Oracle,图形界面是一个亮点,比如下面的一个截图,上面的部分是测试的场景,可以根据需求来指定所占的比例,这个相对是比较灵活的,下面的部分就是性能指标了,主要的一个参考点是TPS,就是每秒事务数,可以在指定的用户数下进行压测。

 当然这个和配置,环境有很大的关系,不可一概而论,像sysbench动辄测试出的几十万TPS,和这个场景相比,这个值虽小,但是说服力更强一些。

   下面是一个配置较好的环境中,使用RAC的多节点压测得到的数据图,TPS大概是4000多,用户数大概是500。

这里需要提一点的是,对于纯碎的压测,不希望模拟复杂的场景,swingbench也可以支持,里面有一个模板stresstest.xml

在configs目录下,它的一个基本原理就是创建一个表,然后在哪个表上做大量的DML操作。大概就是这样的比例,还是可以根据需要来指定,可以很清晰的看出swingbench里面其实大量的配置都是xml.

如果想看一下业务层面的数据统计,也是可以的。这个图就能够看到订单类业务中的一些数据统计情况,查看产品的比例,查看订单的比例,订购的比例等。

文本模式下的压测使用

文本模式下其实也是可以使用swingbench,它提供了一个命令行charbench。

我们可以使用命令,其实理解起来也不难,比如 -s是静默模式, -a是自动运行, -bg是后台运行, -c是指定配置模板文件,-env是打印出环境变量的信息,-v就是对应的指标,用逗号分隔,-vo是生成相应的日志

./charbench -s -a  -bg -c
/root/swingbench/swingbench/configs/stresstest.xml -env  -v
trans,cpu,disk,dml,errs,tpm,tps,users,resp,vresp  -vo a.log

时间: 2024-10-27 20:20:42

swingbench压测Oracle小记(r12笔记第19天)的相关文章

swingbench压测Oracle小记(二)(r12笔记第20天)

   今天抽时间在整理一个关于MySQL和Oracle共同面临的问题,但是它们有着不同的解决方案,就是经典的partial write问题,我也看到网上有很多DBA在纠结,在争论,相比而言,Oracle这边更沉默一些.我认真看了他们的讨论,但是到目前为止没有看到一个把两方面都照顾到的解读,而且这个问题可以继续扩展开来,从存储层面也可以有一些解读,所以我决定做这个事情.至于文章最近应该会从社群中看到,对于内容,我还是抱着谨慎的态度,想让几位朋友审阅之后再说会比较好.如果你对此有一定的基础,对此有浓

一个ORA-00600问题的简单分析(r12笔记第18天)

  在前些天尝试使用sysbench来压测Oracle,没想到初战就不顺利,因为初始化几百万数据库,竟然一个小时过去了,一个表的数据都没有初始化好,这个可让我大大失望,所以我就强制清理了会话,把数据初始化流程给终止了.    今天想继续试试,看看能不能优化一些地方.但是刚开始跑初始化数据的脚本的时候,就抛出了一个ORA-00600的错误. 错误信息如下: Creating table 'sbtest1'... FATAL: OCIStmtExecute failed in drv_oracle.

sysbench压测小记(r11笔记第99天)

对于很多线上业务而言,如果有新服务器,新的环境,新的业务,到底资源和预期的承载压力是否匹配,这个得用数据说话,或是通过严谨的论证来阐述. 比如一台新的服务器,一般都需要经过压力测试,我们也叫拷机测试.一般都会从多个维度来进行加压(比如CPU,内存,IO等等),看看服务器是否依旧坚挺,虽然这一点上如果产生了懈怠或者懒惰还是会被轻视,但是从身边的例子来看,还是会测试出一些问题来,如果发现了问题,就避免了后续的很多被动. sysbench就是这么一个工具,功能非常全面.是一个标准模块化,多线程的基准测

压测之sysbench安装和MySQL只读测试

sysbench编译安装 [root@DS-VM-Node160 ~]# cd /tmp/ [root@DS-VM-Node160 /tmp]# git clone https://github.com/akopytov/sysbench.git [root@DS-VM-Node160 /tmp]# cd sysbench/ [root@DS-VM-Node160 /tmp/sysbench]# yum install mysql mysql-devel libtool openssl-deve

使用sysbench压力测试MySQL(三)(r12笔记第6天)

  昨天使用gdb调试MySQL中事务临界状态的时候,发现其实有些场景可能比我想得还要复杂一些,所以我在昨天的测试中结尾也是快快扫过,但是表明了意思即可.这一点上我在后面会把Oracle的临界事务状态也拿出来对比一下,还是蛮有意思的.   今天简单写了几个脚本继续对一个测试环境的MySQL进行sysbench压力测试.   先突破1000连接资源设置的瓶颈    在上一次的基础上,我们保证了能够满足短时间内1000个连接的冲击,从各个方面做了调整,其中的一个重点逐渐落到了IO的吞吐率上,redo

Qcon大会归来(r12笔记第36天)

   QCon大会全名是全球软件开发者大会,从这个定位来看受益的群体会非常大,面对如此大的一个群体,技术分享难免就会碰到两类问题,议题方向多元化,议题内容众口难调的情况.而无论如何,会议的质量毋庸置疑是排在第一位的,这一点上来看QCon是成功的,从我的耳闻和所见来看是没有看到会议中的软广硬广,确实这样感觉会纯粹很多,不用浪费彼此的时间.在晚宴上,我和他们的编辑聊天时说到,你们算是业内很有节操的了,做技术就是纯纯粹粹,对于质量的把控还是很值得很多人学习的.当然,QCon也不需要我做硬广软广,能够愿

总结一下这一百天来的收获(r12笔记第100天)

   1200多天,听起来是一个蛮吉利的数字,也伴随了我1200多个日日夜夜,无论是出差还是节假日,我都尽量腾出时间来写一些东西,就这样不光有技术博客,还有了游记,生活感悟和日常琐事的思考.    当然,维护这么一个自媒体的号对我来说,有得有失,是得到的多还是失去的多,我觉得是一个平衡.就如同工作和生活的平衡一样.    有很多朋友会问我r12笔记里的r是什么意思,每次有朋友问我,我都会解释给他,就是round,一轮的意思,一轮100天,仅此而已.    而这100天对我来说意味着什么呢.我简单

SolrQuery性能压测参考

大致有下面几类特征应用 一类 key-value,数据库join搬到倒排中而已, 代表应用 很大部分应用场景 一类 区间查询为主 代表应用 **** 一类 纯文本查,不存储,典型只查索引返回DB的索引id信息,代表应用 **** 一类 各种查询涵盖,facet.区间.group较多 典型代表 *** 如果应用场景相类似,已在线应用的性能或者历史压测数据具有一定的参考价值. 如果应用场景不类似,特别是有某个极端需求或者极端场景特征的话,通常需要具体测试和针对性优化. 搜索压测 性能压测需要关注:数

阿里10年分布式技术沉淀:阿里高可用体系核心缔造者、全链路压测创始人告诉你!

本次活动看点十足,大咖齐聚.纯正干货,下面给大家做下详解介绍,相信看后定会让你动心! 议题详情 双11核武器全链路压测--张军 / 阿里巴巴中间件高级技术专家 阿里巴巴双11备战期间,保障系统稳定性最大的难题在于容量规划,而容量规划最大的难题在于准确评估从用户登录到完成购买的整个链条中,核心页面和交易支付的实际承载能力.全链路压测的诞生改变了这一现状,通过对双11进行模拟,支持线上不影响正常用户访问的集群读写压测,获得最真实的线上承载能力数据.全链路压测开启了大促稳定性保障的新纪元,被誉为备战核