如何对 Oracle 做压力测试?

有关SQL

共 2513字,需浏览 6分钟

 ·

2020-08-25 11:50

点击蓝色“有关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 数据库小白,从入门到精通的学习路线与书单









浏览 69
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报