【齐鲁TV】自建linux-oracle数据库【swingbench】性能测试实践案例
  

wxyy 45066

{{ttag.title}}
本帖最后由 张涵博 于 2024-8-5 10:01 编辑

1 环境介绍
Oracle数据库环境:非深信服自动部署脚本安装,客户自建四节点Oracle 11G RAC集群;
2 工具部署
使用Swingbench vma模板导入,直接新建测试虚拟机即可,确保测试虚拟机与数据库集群可正常通信。Swingbench虚拟机用户名:root 密码:sangfor
Swingbench客户端虚拟机(swingbench_client.vma):
【测试指标】
TPS---Transaction Per Second,数据库每秒执行的事务数,以commit成功次数为准。
TPM---Transactions Per Minute,即服务器每分钟处理的事务数,被广泛用于衡量计算机系统的事务处理能力。这个数值是TPS*60。

3 数据库优化
3.1 虚拟机配置优化
1、检查Oracle虚拟机是否启用了NUMA调度;
2、检查Oracle虚拟机磁盘是否为预分配模式,同时勾选使用FistIO/Virtio磁盘;
3、检查Oracle虚拟机勾选使用大页内存;
4、确认HCI平台除了测试相关虚拟机外其他虚拟机及虚拟网络设备均处于关闭状态,以免影响测试结果;

3.2 oracle数据库虚拟机优化
1、禁用memory_target和memory_max_target参数
alter system reset memory_target scope=spfile sid= '*';
alter system reset memory_max_target scope=spfile sid= '*';
2、设置 sga大小,一般设置为内存的60%
lter system set sga_max_size=XXg scope=spfile;
alter system set sga_target=XXg scope=spfile;
3、设置pga大小,一般设置为内存大小*0.14
alter system set pga_aggregate_target=XXg scope=spfile;

3.3 关闭透明大页
修改系统的/etc/rc.local文件,增加如下内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

3.4 开启大页内存
1、修改系统的/etc/sysctl.conf文件,新增一行
vm.nr_hugepages = SGA(M)/2+100
2、修改系统的/etc/security/limits.conf 文件,新增两行。
soft  memlock  虚拟机配置内存(G*0.9*1024*1024
hard  memlock 虚拟机配置内存(G*0.9*1024*1024

3.5 重启虚拟机
RAC环境需要重启所有节点。

4 swingbench手动初始化压测数据
4.1 创建表空间
1、创建SOE表空间。
create tablespace soe datafile '+data' size 1024M autoextend on next 32M;
SwingBench选择初始化10G数据,大致占用数据库27G空间,故若客户要求初始化的数据量比较大,则需要为soe表空间添加更多的数据文件。比如SwingBench初始化100G数据,大致会占用数据库空间300G,则需要额外给SOE表空间添加10个数据文件。操作方法就是alter tablespace soe add datafile '+data';执行10次。
注1:这里假设数据库的数据存储在DATA磁盘组。如果磁盘组名称不是DATA,是其他名称,则替换掉data即可。比如客户数据磁盘组是DATADG,则命令为:alter tablespace soe add datafile '+datadg';。
2:当SwingBench只初始化10G或以内数据时,不需要额外添加数据文件和临时表空间数据文件,只需创建SOE表空间即可。
2、为SOE表空间添加数据文件
alter tablespace soe add datafile '+data';
alter tablespace temp add tempfile '+data';   ---该命令是为临时表空间temp添加数据文件的命令,当SwingBench初始化数据量较大时,额外给temp添加一个数据文件。

4.2客户端虚拟机进行数据初始化
1、进入swingbench的安装目录,执行初始化向导脚本。
cd  /root/swingbench/bin
./oewizard
2、Benchmark version选择推荐的2.0版本。
3、选择创建Schema。
4、输入oracle的连接字符串,格式为://Oracle的ip/SID。
5、配置创建Schema的详细信息,这里保持默认即可。
6、配置创建Schema时的数据库选项,按照下图的进行配置即可。
7、配置初始化的数据量,这里我们如果测试可以初始化50G或者是100G的数据,这个可以看客户的原始数据库容量是多少做对应的调整。
注意:
1.初始化数据量越大,初始化所需的时间越长,初始化100G数据需用时约2小时;
2.指定的初始化数据大小在数据库中会按照1:2比例占用空间。即初始化10G数据,在数据库中大约占空间24G;初始化100G 数据,在数据库中占空间约220G。
3.初始化数据的量可以根据客户需求来定。也可以看客户业务库数据量大小,若业务库为200G大小,则可以在测试库初始化100G数据进行压测。
8、选择swingbench客户端的线程数:这里选择2倍的客户端的CPU线程数就OK了,最后直接点击finish就开始初始化数据了,这里初始化的时间比较久,如果100G的数据需要1-2小时。

5 性能测试
1、进入swingbench的安装目录,运行程序。
cd /root/swingbench/bin
./swingbench
2、按照客户实际情况创建交易模型,无特殊需求保持如图一致即可。
注:可以在其余交易模型不变的情况下,不断增大users并发测试数据库极限;
3、配置完后,点开始测试按钮进行测试,等待tpm和tps曲线稳定后记录结果:

打赏鼓励作者,期待更多好文!

打赏
7人已打赏

王老师 发表于 2025-5-26 08:38
  
3.1 虚拟机配置优化
1、检查Oracle虚拟机是否启用了NUMA调度;
2、检查Oracle虚拟机磁盘是否为预分配模式,同时勾选使用FistIO/Virtio磁盘;
3、检查Oracle虚拟机勾选使用大页内存;
4、确认HCI平台除了测试相关虚拟机外其他虚拟机及虚拟网络设备均处于关闭状态,以免影响测试结果
发表新帖
热门标签
全部标签>
有一说一
纪元平台
功能体验
存储
专家分享
迁移
每日一问
新版本体验
GIF动图学习
信服课堂视频
虚拟机
每周精选
项目案例
标准化排查
地址转换
追光者计划
技术笔记
安全攻防
问题分析处理
流量管理
终端接入
「智能机器人」
专家说
声音值千金
工具体验官
答题自测
上网策略
资源访问
排障笔记本
产品预警公告
技术晨报
升级
日志审计
解决方案
设备维护
技术争霸赛
以战代练
场景专题
社区新周刊
全能先锋系列
产品连连看
VPN 对接
功能咨询
秒懂零信任
文档捉虫
齐鲁TV
高频问题集锦
【 社区to talk】
云化安全能力
产品解析
安装部署配置
2025年技术争霸赛
测试报告
SDP百科
华北区交付直播
行业实践
MVP
每日一记
运维工具
原创分享
sangfor周刊
SANGFOR资讯
授权
玩转零信任
山东区技术晨报
故障笔记
排障那些事
升级&主动服务
产品知识周周练
畅聊IT
专家问答
技术圆桌
在线直播
信服故事
卧龙计划
平台使用
技术盲盒
北京区每日一练
产品动态
用户认证
技术顾问
POC测试案例
安全效果
关键解决方案
S豆商城资讯
2023技术争霸赛专题
天逸直播
产品体验官
VMware替换
网络基础知识
华北区拉练
西北区每日一问
热门活动
高手请过招
2024年技术争霸赛

本版版主

13
6
2

发帖

粉丝

关注

本版达人