如何对 Oracle 做压力测试?
共 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等性能指标,作为今后系统正式上线后的一个参考依据
往期精彩: