如何对 Oracle 做压力测试?

有关SQL

共 2513字,需浏览 6分钟

 · 2020-08-25

点击蓝色“有关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.htm
http://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,根据需求填写,比如:
--如果压测只连接实例1
jyrac1:1521:jyzhao1


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


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




2. 运行swingbench压力测试



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




--完--





往期精彩:


本号精华合集(二)

如何写好 5000 行的 SQL 代码

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

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

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









浏览 56
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报