暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

如何进行双活数据库中心的RAC网络测试(Extended RAC cache fusion test)

2066

双活

双活数据中心,是近年来各大企业对关键业务非常热门的一种技术。Oracle RAC数据库是天然的双活数据中心解决方案的核心技术。双活的核心其实就是双份存储,和实时的远程数据同步,简而言之,双活对IO和网络要求比一般的本地进群数据库要高很多。一般的双活解决方案又分为,基于ASM的复制,和基于硬件的复制(比如EMC,IBM 的解决方案)。 双活数据中心实施是一个比较复杂的工程, 本文对双活实施中的一个重要的方面:   数据库心跳网络测试进行探讨。


对于RAC而言,这种远程数据中心方案的最大瓶颈是节点之间的心跳网络,因为它对验收和流量的要求都非常高。一般来说,同在一个机房的两个节点间传输时延在1ms以内,在双数据中心方案,随着网络距离的增长,延时则会增加,如果网络设计,和质量达不到较好的水准,那么就可能大大影响双活的性能。

 

Oracle ACS部门一般会对Extended RAC进行严格的网络测试,这个测试和一般网络测试(比如iperf,iperf测试可以作为该测试的补充)不同, 这类测试是由数据库发起,利用SQL语句模拟出大量心跳网络流量,这样和实际生产中的高峰期压力更为接近,更能直观的反应当前RAC构架的性能和稳定性。


该测试我们主要测试和关注4个方面:


1. 在本地心跳和远程心跳网络发起大的网络流量,观测网络质量。

2. 在大量心跳流量,RAC等待事件和统计分析。

3. 本地节点间测试和远程节点测试的对比分析(延迟增加),为生产上线前的业务分割提供一定的性能依据。

4. 在大心跳流量期间,数据库,集群以及操作系统的状态。测试也是对数据库,操作系统网络相关配置的检测。

 

下面我们以一套4节点的Extended RAC环境举例。主机采用IBM的小型机,AIX操作系统,存储采用EMC Vplex ,网络采用光纤(WDM)。1-2节点主机和存储在siteA3-4节点的主机和存储在siteB。测试中,最小测试方案为,测试1-2节点(本地),测试1-3节点远程,测试2-4节点远程。如果在测试中发现问题,则可能加测更多的节点组合方案。

 

测试案例分别会在两个节点运行DML,操作为

节点1并发发起 insert + 节点1并发发起 select delete  

节点2并发发起select update

所有的会话操作的相同的一片数据区域。在写入数据的量为300M-500M/秒(根据硬件,有所不同)。

 

  • 在本地心跳和远程心跳网络发起大的网络流量,观测网络质量



可以看出在本次测试中的1-2节点(local-local)测试中,模拟的心跳流量大约在120M/秒左右。主要考察GC流量大小,GC BLOCK LOST远程数据交换带来的延迟,Oracle集群和数据库的健康状态

 

在本次测试中,可以看出1-2测试中gc流量比较稳定,没有丢失块.


1-3(local-remote)的测试情况

1-3的测试,发现一定的gc blocks lost,这和extended RAC 的远程链路的质量和配置有关。丢快的比例大约为万分之一。

继续测试2-4(local-remote)节点

发现2-4节点远程链路质量较好。

这时,我们发现的问题,就是1-3节点之间的链路可能存在问题。这个时候,就需要配合网络管理员进行排除。在问题解决后,再次进行测试。

  • RAC等待事件和统计分析

在测试期间进行awr 的采样,创建awr report,分析RAC 统计和等待事件。

可以看出,Top 10几乎都是gc相关等待事件。

确保流量正常,gc块的平均接收和发送时间正常(小于5ms),

比较重要的几个指标:

gc cr block send time

gc cr block receive time

gc current block send time

gc current block receive time

具体分析的方案和一般RAC并无太大区别。



  • 本地节点间测试和远程节点测试的对比分析(延迟增加)

对远程数据交换带来的延迟的分析。

对比1-2节点的性能数据库和1-3节点,2-4节点的性能数据。我们可以发现,相同的SQL语句,等待事件的时间差异。在当前的测试案例中,各项等待事件的平均等待事件要慢1ms, 测试用SQL的平均执行时间,在1-2节点和1-3节点对比中,1-2节点要慢大约30ms,性能下降约10%,这反应远程网络带来的性能损耗。

1-3 远程节点测试

1-2 本地节点测试

  • 在大心跳流量期间,数据库,集群以及操作系统的状态

最后是数据库和集群日志分析,确保没有发生异常。

 

 


<最后是如何利用OTEST进行一次RAC cache fusion测试>

打开OTEST,配置好测试环境以后,我们开始进行RAC测试。

RAC测试,分别会在两个节点并发的运行SQL,操作为

节点1 insert  节点2 select update,节点1 select delete

模拟的心跳流量在完美情况下大约在150M/秒左右。主要考察GC流量大小,GCBLOCK LOSTGC其它指标是否健康,集群的稳定性,数据库稳定性。

连接到节点1,

准备第一个步骤

打开第二个窗口,连接节点1,准备第二个步骤,注意不在选取fg logging

 

 

连接到节点2,准备节点2的步骤

 

三个步骤准备好以后, 再依次点击latch Test 开始测试。

在测试启动后,采样awr

execdbms_workload_repository.create_snapshot();

在测试达到95%后,再次采样

execdbms_workload_repository.create_snapshot();

 

 

在Watcher 面板观测gc指标

 


最后对测试分析需要利用到:

fg logging 日志。

awr 报告。

db watcher监控。

数据库和集群日志。

操作系统监控日志,比如nestat 

 

 Geting better resull with Oracle ACS !

更多extended rac文章即将推出

 

双活数据库中的复杂IO测试

基于asm复制的双活和EMC Vplex方案的实际生产对比


专家简介:

    王文杰甲骨文公司资深技术专家,多年Oracle&Java项目构架,开发,运维经验。擅长于数据库性能调优、SQL优化,数据库疑难问题诊断,同时拥有丰富的软件开发经验。曾作为构架师,Team Leader设计开发某省电信网元激活系统,曾任美国某500强公司DBA team Leader, Commercial DBA Project  Manager  

    



文章转载自西区O记重案实录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论