×

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

wxyy 4525

{{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曲线稳定后记录结果:

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

打赏
5人已打赏

发表新帖
热门标签
全部标签>
西北区每日一问
每日一问
干货满满
技术笔记
技术盲盒
产品连连看
功能体验
GIF动图学习
技术咨询
信服课堂视频
新版本体验
原创分享
高频问题集锦
安装部署配置
自助服务平台操作指引
排障那些事
运维工具
标准化排查
2023技术争霸赛专题
解决方案
sangfor周刊
项目案例
通用技术
秒懂零信任
高手请过招
升级&主动服务
测试报告
社区帮助指南
纪元平台
技术晨报
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
日志审计
问题分析处理
流量管理
每日一记
云计算知识
用户认证
VPN 对接
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
答题榜单公布
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记

本版版主

64
25
4

发帖

粉丝

关注

9
5
2

发帖

粉丝

关注

本版达人