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

之前也分享过一篇关于swingbench测试Oracle的文章,图形工具和命令行的博弈-swingbench配置(r8笔记第63天),也算是一个起步了。

新业务要上线,不跑个压力测试还真说不过去,当然对于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

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2017-03-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏韩伟的专栏

经典的服务器结构概述(中)

. 经典的服务器结构概述(中) 今天将和大家详细探讨分服模型,本文结构如下: ? 1模型描述 分服模型是游戏服务器中最典型,也是历久最悠久的模型。其特征是游...

46870
来自专栏韩伟的专栏

分布式本质论:高吞吐、高可用、可扩展

大量用户访问同一个互联网业务,所造成的问题并不简单。从表面上看,要能满足很多用户来自互联网的请求,最基本的需求就是所谓性能需求:用户反应网页打开很慢,或者网游中...

3.5K00
来自专栏python开发者

"过期不候"--具备生命周期的数据的技术实现方案

"过期不候"--具备生命周期的数据的技术实现方案 1   引言 本文可以作为之前的一个 原理性文章 对应的 技术实现部分 。 此处给出其上文的直达电梯: htt...

25050
来自专栏Python数据科学

33款你可能不知道的开源爬虫软件工具

爬虫,即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而做出的优化。

1K20
来自专栏钱塘大数据

【推荐收藏】33款可用来抓数据的开源爬虫软件工具

要玩大数据,没有数据怎么玩?这里推荐一些33款开源爬虫软件给大家。 爬虫,即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很...

65050
来自专栏GA小站

UTM参数使用30问——既UTM参数使用指南(2018)

有很多缺少Google Analytics的UTM参数而导致的跟踪错误案例,我在Google Analytics Community和 Quora 看到过成千上...

44320
来自专栏ImportSource

故障驱动的微服务架构设计

此文背景: 之所以发布此文,是有一个直接的原因,就是我们之前在线上遇到了一个使用timeout来判断是否失败的案例,这是真实的,结果就是效果很不好。看了本文中介...

53770
来自专栏Crossin的编程教室

一键下载:将知乎专栏导出成电子书

老是有同学问,学了 Python 基础后不知道可以做点什么来提高。今天就再用个小例子,给大家讲讲,通过 Python 和爬虫,可以完成怎样的小工具。

33910
来自专栏WeTest质量开放平台团队的专栏

【长文干货】浅析分布式系统

我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ、微信、淘宝。那么,一个互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一...

13730
来自专栏Python爬虫与数据挖掘

手把手教你安装Navicat——靠谱的Navicat安装教程

 Navicat是一款轻量级的用于MySQL连接和管理的工具,非常好用,使用起来方便,简洁。下面讲讲其安装的过程。

26940

扫码关注云+社区

领取腾讯云代金券