Swingbench 压力测试虚拟机RAC
1. Swingbench 简介
Swingbench是一个免费的负载生成器和基准测试工具,其支持Oracle数据库(11g、12c、18c、19c)。Swingbench的开发目的主要是展示RAC的负载和测试,也可用于单实例环境。下载地址为 http://www.dominicgiles.com/downloads.html
Swingbench模拟了一套订单业务逻辑,通过创建SOE用户,模拟产品和订单业务,可以自定义数据量的大小,本次测试将生成50GB的业务数据。
2. Swingbench java版本要求
Swingbench 2.5/2.6要求jdk的最低版本为1.8
检查本地java版本
Java –version
测试环境为oracle 11.2.0.4 OS redhat 6.9 8C 64GB
需要先升级jdk到17
下载jdk: jdk-17_linux-x64_bin.rpm
下载地址 :https://www.oracle.com/java/technologies/downloads/
上传到/usr/local/src目录
1、首先根据实际情况准备好包 jdk-17_linux-x64_bin.rpm
2、先不管是否已安装JDK1.6还是JDK1.7,先下载jdk-17_linux-x64_bin.rpm 然后上传到 /usr/local/src 去。当然其他目录也可以。这里是默认位置。
3、给所有用户添加可执行权限
#chmod +x jdk-17_linux-x64_bin.rpm
4、开始安装程序
#rpm -ivh jdk-17_linux-x64_bin.rpm
接下来就是等待安装结束了。
5、安装结束后,jdk会安装在/usr/java/jdk-17里,然后我们再来配置环境变量。(这时可以直接查一下java -version 看是否已经升级,如果升级就不需要后续操作)
6、好吧,看到安装后产生的文件夹就对了,那么接下来就是配置环境变量了。让当前环境使用我们最新安装的JDK17 ,
#vi /etc/profile
7、好的,这步关键
录入 i 进行编辑文本
然后在文件内容最后面添加
export JAVA_HOME=/usr/java/jdk-17
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
然后按 esc 按键,输入:wq 保存退出 (PS: 输入的是 冒号+w+q)
8、然后需要设置让更改生效:
[root@linux local]# source /etc/profile
9、最后,在Shell提示符下输入java -version,如果成功输出正确的版本信息,说明安装成功了.
JDK版本对应其major version
3. Xmanager 配置使用界面版安装配置
创建测试schema,表索引数据等等
配置连接信息和用户信息
测试schema和tablespace
生成测试数据量大小,我们这里生成50GB
设置并行生成数据
4.调整数据库参数
接下来调整参数,重启数据库就可以测试了,调整参数如下:
alter system set processes=4000 scope=spfile;
alter system set db_files=2500 scope=spfile;
alter system set standby_file_management='AUTO';
alter system set control_file_record_keep_time=30;
alter system set fast_start_mttr_target=120 scope=spfile;
alter system set open_links_per_instance=10 scope=spfile;
alter system set session_cached_cursors=600 scope=spfile;
alter system set archive_lag_target=1800 scope=spfile;
alter system set open_cursors=1500 scope=spfile;
alter system set open_links=10 scope=spfile;
alter system set undo_retention=10800 scope=spfile;
alter system set lock_sga=FALSE scope=spfile;
alter system set remote_login_passwordfile='EXCLUSIVE' scope=spfile;
alter system set resource_manager_plan='' scope=spfile;
alter system set statistics_level='TYPICAL' scope=spfile;
alter system set timed_statistics=TRUE scope=spfile;
alter system set undo_management='AUTO' scope=spfile;
alter system set db_cache_advice='OFF' scope=spfile;
alter system set audit_trail='NONE' scope=spfile;
alter system set audit_sys_operations=false scope=spfile;
alter system set "_gc_policy_time"=0 scope=spfile;
alter system set "_sort_elimination_cost_ratio"=0 scope=spfile;
alter system set "_use_adaptive_log_file_sync"= FALSE scope=spfile;
alter system set "result_cache_max_size"= 0 scope=spfile;
alter system set "_optimizer_use_feedback"=false scope=spfile;
alter system set use_large_pages=false scope=spfile;
调整好参数后,重启数据库
srvctl stop database -d mesdb
srvctl start database -d mesdb
srvctl status database -d mesdb
5.压力测试
5.1设置并发量500
压测结果CPU/内存满载,IOPS 单盘5000左右,每秒事务数3000不到
每秒钟事务数接近3000
CPU 接近0%idle
单盘IOPS 5000左右
磁盘iostat
5.1 测试并发量1400
压测结果CPU/内存满载,IOPS 单盘6000左右,每秒事务数可达5000
CPU满载
IOPS 单盘6000左右
IOstat状态
6.测试总结
根据不同并发情况下,监控系统和数据库状态可以得出,使用超融合承载MES应用
以8C64GB配置为例可以满足当前公司工厂级别需求;
- 并发量 单台可以负载1500左右并发,目前并发量最大的基地YCDF单台不超过500
- 每秒事务量 每秒钟事务量可以达到5000 ,
- IOPS IOPS依然是系统的瓶颈,但是单盘IOPS也能达到6000左右;
- 以负载最高的Y某基地为例业务高峰期单盘IOPS 在800-1000左右
综上以现有各个基地的负载情况来看,使用超融合架构可以满足MES数据库的应用