Oracle 集群数据库压力测试与分析①

2020-02-28 05:08
关键词:测试数据虚拟化集群

(遵义师范学院网络管理中心,贵州 遵义 563006)

0 引 言

随着现代信息化技术的发展,信息化系统不断催生,为保障各类应用的高可用需求,各大数据库厂商也在不断的推出高可用的数据库集群解决方案,Oracle从9i正式提出RAC数据库,它可以支持7×24h的应用系统在低成本的服务器上进行构建,并且可以进行应用的自由部署。当系统规模需要扩充时,用户可以根据自身需求,对系统规模进行相应扩展,以此来保障系统的运行性能[1-2]。但是,只是简单的增加节点,能给集群性能提升带来多大的变化则需要通过实践来检验。通过虚拟化平台VirtalBox搭建两个节点的RAC集群,然后利用Swingbench压力测试工具分别对双节点和单节点下的集群环境进行压力测试,分析两种环境下数据库性能的变化情况,进而得出相应的结论。

1 RAC数据库原理与搭建

1.1 RAC数据库原理

Oracle RAC是基于并行性、高可用性等诸多概念产生的,从硬件层面来说,部署集群最少需要两台服务器(或者PC)、以及共享存储设备。通过虚拟化技术,则是创建了两台虚拟主机以及虚拟共享存储设备。同时实施过程中还要两类软件,Oracle集群件和数据库软件,并且安装RAC集群的服务器操作系统要保证一致。根据负载均衡的相关策略,当一个应用客户端发送请求并被集群中的某一台服务器监听后,这台服务器会根据相关的策略,把客户端请求发送给本机的RAC组件进行处理,当然也可能发送给集群中另外的服务器RAC组件处理。通常双节点的架构如图1所示。

图1 双节点RAC架构图

1.2 RAC数据库搭建

根据表1中的规划信息,搭建双节点RAC集群测试环境,以此为基础,进行后续的压力测试操作,关于RAC双节点的搭建,参见文献[3]。

文中采用虚拟化平台环境:VirtualBox5.1.26;

操作系统版本:CentOS6.4;

数据库软件版本(Grid,Oracle):Oracle12CR1;

压力测试软件:Swingbench2.6。

虚拟化主机资源:单CPU,内存5120M。

表1 RAC集群规划表

2 利用Swingbench进行压力测试[4]2.1 测试数据导入

(1)在将要运行Swingbench测试软件的节点上安装java运行环境支持:yum -y install java-1.8.0-openjdk*

(2)进入Swingbench软件的bin目录,利用./oewizard命令执行导入数据向导。

(3)在数据库设置界面中,输入测试数据的相关信息。Connect String://rac1/tar;用户:sys;密码:yy123654。连接字符串、用户名及密码信息根据数据库本身信息进行更改,并且在连接过程中保证Oracle数据库是打开状态。

(4)设置Schema用户名和密码,并指定用于存放测试数据的表空间,以及数据文件存放位置,之后执行导入1G测试数据。

(5)数据导入成功后,出现如图2所示界面。

图2 成功导入数据界面图

2.2 压力测试

进入Swingbench的bin目录,执行./swingbench命令。在弹出的Swingbench运行主界面进行参数设置,具体如图3所示。

Configuration界面:设置Username,Password,Connect String参数。//Username,Password是导入测试数据时设置的Schema用户名和密码,Connect String是测试数据库的连接字符。

Load界面:设置导入用户数,此处导入4个用户。

Transactions界面:设置各种类型操作所占比例。

图3 Swingbench 参数设置图

图4 双节点压力测试结果图

图5 单节点压力测试结果图

设置好所有参数后,点击工具栏Start Benchmark Run按钮,则开始进行压力测试。先进行双节点压力测试,其测试结果如图4所示。

在完成玩节点压力测试工作后,把集群中的节点2进行关闭,变成单节点的集群环境。或者,在图2的Configuration界面中,将参数Connect String设置为rac1∶1521∶tar1,便是通过单节点进行数据库的压力测试操作。单节点压力测试结果如图5所示。

2.3 结果分析

根据之前的参数设置,通过压力测试,得到测试结果图,从图上可以直观的得出双节点和单节点压力测试的几个重要数值,如表2所示。

表2 压力测试情况对比表

双节点集群比单节点集群从资源量上来说,增加了一倍,但是根据表2的几个参数值来说,从压力测试的结果层面来看,其性能虽然是有所增加,并没有得到太大的改观,从投入产出来说,投入的资源量并没有达到预期的效果。因此,对于RAC数据库来说,单纯的增加节点对于集群性能并不会有太大的提升,其节点间通讯等对资源耗费较大。

3 结 语

以虚拟化技术为手段,以Swingbench为测试工具,实现了Oracle 12C RAC集群在单节点、双节点运行情况下的数据库性能压力测试研究。从测试结果来看,双节点集群的性能是比单节点集群数据库性能更好,但是从资源投入得到的回报角度出发,其性能上的提升远远没有达到期望。如果在真实环境当中,当集群数据库环境无法满足应用系统的需求时,不能单一从增加资源这个层面来处理,可能还得考虑集群环境的优化等因素,从而才能为应用系统提供更优的数据库运行环境。数据库集群环境的性能得从多方面综合处理,才能更好的保障应用系统的需求。

猜你喜欢
测试数据虚拟化集群
海上小型无人机集群的反制装备需求与应对之策研究
基于OpenStack虚拟化网络管理平台的设计与实现
测试数据管理系统设计与实现
对基于Docker的虚拟化技术的几点探讨
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
浅析虚拟化技术的安全保障
H3C CAS 云计算管理平台上虚拟化安全防护的实现
勤快又呆萌的集群机器人
基于自适应粒子群优化算法的测试数据扩增方法