暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

如何对 Oracle 做压力测试?

有关SQL 2020-08-25
7424

点击蓝色“有关SQL”关注我哟

加个“星标”,天天与10000人一起快乐成长

原作者:孙杰

原文地址:

http://xjsunjie.blog.51cto.com/999372/1560779

小编有话说

最近一直在找数据库测试方案。找了很多论文来看,同时也看一些博客。读过几篇文章,越发感觉数据库测试对于大部分的团队来讲,都是黑盒,极易被轻视。

有些团队不知道测试的标准做法,连测试指标体系都不会系统化创建,靠着随意拉来的几个开发或毫无经验的QA,怎么能保证软件质量呢。

而这些人实在也不该给软件质量背锅。因为他们本身就只能打外围,测业务功能嘛,对压力,性能,可用性一点概念都没有。就好比,让BI团队来负责互联网公司的营运一样,看似数据都是BI出的,业务都在代码里,那为什么BI团队做不好运营呢。强丢的KPI,谁能背得动?

所以我认为,数据库测试对于数据库开发团队来说,是门必修课。

兜兜转转,找到了孙杰老师的这篇文章,本文从实战的角度为我们演示了数据库压力测试该怎么做,以便我们上线数据库后,能够胸有成竹对老板说,“我们单机能支撑每分钟5000事务”。

以下是孙老师的原文:

swingbench是一款网络上开源的oracle压力测试工具,支持oracle 11g版本,还能对rac进行测试。从官方页面http://dominicgiles.com/downloads.html上可以下载最新的软件版本。

   swingbench可以运行在windows和linux平台,本次测试采用linux平台,具体测试过程如下:

  1、首先使用VMVARE10搭建一个redhat6.5的虚拟机。

  2、在虚拟redhat6.5上安装ORACLE11G的数据库。

  3、使用oewizard导入测试数据,可以根据向导提示进行数据导入。

        yum install -y java  

  4、使用swingbench进行压力测试。

测试步骤:

1、导数据之前需要修改temp表空间大小,使其能够容纳下相应的导入数据

mkdir -p home/oracle/oradata/orcl

create temporary tablespace temp1 tempfile '/home/oracle/oradata/orcl/temp1.dbf' size 100m; 

alter database default temporary tablespace temp1; 

drop tablespace TEMP; 

create temporary tablespace temp tempfile '/home/oracle/oradata/orcl/temp.dbf' size 1g;

alter database default temporary tablespace temp;

drop tablespace temp1;

(也可用rm删除temp1.dbf)

上述操作也可通过EM管理界面直接将TEMP表空间扩到1G.

2、安装swingbench测试软件,直接解压缩即可运行。

unzip -x swingbench25919.zip

注意要按照java8

 yum -y install java-1.8.0-openjdk*

3、进入swingbench/bin目录执行oewizard导入1G测试数据,并修改数据库连接名和DBA密码

输入导入数据文件存放位置:

选择导入1G数据:

数据导完之后在该目录下运行swingbench执行测试,修改数据库连接名,用户连接数设置为300,测试时间设置为10分钟

修改Distributed Controls用于测试过程中搜集测试监控信息,修改完之后测试连接是否正常,并可以统计主机的cpu  disk IO 信息

还可以拉出AWR报表

设置 insert,update ,select的比例

设置完成之后,点击左上角绿色按钮执行测试

测试过程截图

测试结果可保持为XML文档,最后查看显示如下

------------

我们可以使用swingbench这个工具对数据库性能进行压力测试,得到一些性能指标作为参考。SwingBench下载:http://www.dominicgiles.com/downloads.html

参考相关文章:http://www.linuxidc.com/Linux/2016-04/130297.htmhttp://blog.csdn.net/xiaofan23z/article/details/7978998

实验环境:RHEL 6.5 + Oracle 11.2.0.4 RAC + SwingBench 2.5.0.971

1. 生成swingbench配置文件swingbench解压即可使用,第一次需要配置,本次只是简单熟悉swingbench的使用,配置基本按照默认。

[oracle@jyrac1 bin]$ pwd/home/oracle/swingbench/bin[oracle@jyrac1 bin]$ ./oewizard
复制

注意,上面的connect string,根据需求填写,比如:--如果压测只连接实例1jyrac1:1521:jyzhao1

--如果压测只连接实例2jyrac2:1521:jyzhao2

--如果压测连接RAC集群,LB到各个实例//jyrac1/jyzhao

2. 运行swingbench压力测试

可以大致看到压力测试中,数据库可以达到的TPM,TPS等性能指标,作为今后系统正式上线后的一个参考依据

--完--

往期精彩:

本号精华合集(二)

如何写好 5000 行的 SQL 代码

如何提高阅读 SQL 源代码的快感

我在面试数据库工程师候选人时,常问的一些题

零基础 SQL 数据库小白,从入门到精通的学习路线与书单



文章转载自有关SQL,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论