本帖最后由 张涵博 于 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曲线稳定后记录结果: |