【推荐】 RAC 性能优化全攻略与经典案例剖析

ORACLE RAC凭借其卓越的容错能力和可扩展性以及对应用透明的切换能力引领了数据库高可用架构的潮流,但在实际的生产环境中,出现的性能问题非常多,对数据库的稳定性产生很大的影响,有一些甚至影响到了业务的连续性。


在近期的第七届数据技术嘉年华上,云和恩墨技术专家曾令军做了“RAC性能优化实战”为主题的演讲,分享了从硬件架构、系统与参数配置、应用设计以及工作负载管理这四个层面,剖析在RAC性能优化的过程中,应当注意的问题以及可以借鉴的经验和思路。我们再次分享出来,希望对各位有所指导借鉴。


RAC硬件架构


“千尺之台,始于垒土”,硬件架构是决定RAC环境运行性能最基础的部分。下面是一个比较简单的RAC架构拓扑图,一个存储、两台主机、三条网络,构成了一套RAC环境。


用户通过业务网发起一个查询请求,数据库会判断要请求的数据块在两个节点的内存(buffer cache)中是否存在,如果存在,这些数据块就通过私网复制传递到需要的节点上,如果没有,再从存储读取到内存。在这个过程中,私网负责数据块传递及锁控制方面的通信,而存储,除了要响应数据请求,还要负责保存数据和记录日志。所以,共享存储和私有网络被认为是RAC系统的核心和灵魂


换句话说,如果这两部分组件的性能有问题,对RAC环境的影响也是最大的。



既然这两部分组件在RAC环境中如此重要,在做基础硬件选型及规划的时候,需要基于业务系统的规划要求,了解硬件环境是否能够满足业务的发展需要,把好性能优化的第一关。


在RAC环境中,存储层面最关注的指标包括I/O吞吐量、IOPS、I/O延时;而私有网络层面最关注的是带宽和网络延时这里顺便介绍两个工具:Orion和Netperf,可以很好地满足这两部分组件的测试需求


在规划重要系统的硬件架构时,需要考虑RAC环境的一些特殊要求,尤其是性能负载特别高的系统。以下是在RAC硬件架构层面的一些实践经验,供大家参考:


  • 使用冗余的网络连接


双公网、双私网、多存储链路。公网(业务网)建议每个主机使用两块网卡做网卡绑定;私网配置两块网卡,安装的时候都选上,集群就会为它们配置HAIP;存储要使用多条存储链路,并安装多路径软件。这样做的好处,一是消除单点故障,另外有些配置还能够起到负载均衡的作用。


  • 私网建议使用万兆的带宽,使用单独的交换机


万兆带宽是为了应对私网流量大的压力,减轻网络带宽出现瓶颈的问题。使用共享的交换机,一个是对于压力大的系统,带宽可能互相争用或限制,另外由于HAIP是虚拟地址,如果用VLAN,还可能可能遇到IP与网关地址冲突的问题。所以,重要系统的私网最好能使用单独交换机。


  • 用ASM管理磁盘、磁盘组使用Normal冗余方案


ASM技术在11G已经非常成熟,不但性能好,对于磁盘的管理维护也特别方便。如果有条件的话,建议使用normal的冗余方式,这样做的好处,一个是数据多一份备份,另外就是ASM有一些特性能够提升读写效率,例如11G的优先读取失败组,12C的均匀读取失败组。


  • 磁盘太小的区间是100G到2T,同一个磁盘组的磁盘大小要相同


磁盘大小相同有利于磁盘的容量管理和磁盘组中数据的rebalance性能,11G的数据库软件还不支持大于2T的磁盘。


  • 数据文件与归档文件存放在不同的磁盘组中


把不同的文件放在不同的磁盘组,可以起到I/O分流的作用,但这个设计不仅仅是出于读写性能的考虑,也是基于数据安全的考虑,如果数据和归档放在同一个磁盘组,万一这个磁盘组有问题,不但数据文件读不出来,使用备份恢复的时候,连归档日志也读不出来,那就会产生数据丢失的风险。


  • 将Redo日志放在RAID1+0磁阵上,而不是raid5和SSD盘上


关于这点最近刚好遇到一个案例,这套系统提交特别频繁,log file sync等待事件很严重。由于是性能测试阶段,所以针对性地做了很多测试,redo日志放在底层做raid5的存储盘上性能是最差的,而放在raid10上是最好的。因为提交特别频繁的系统,写redo日志都是小I/O操作,对存储的iops性能要求特别高。raid5的iops性能是最差的,ssd盘iops性能虽然很高,但是它的数据块擦写的方式,存在写峰值的问题。大多数情况下log write性能都很好,当峰值一出现,就会出现很多个用户会话并发等待lgwr写操作的完成,进而产生被成倍数放大的log file sync等待。所以我们建议对于性能要求特别高的联机业务系统,redo日志要放在普通的机械磁盘的raid10磁阵上。另外,这是一个存在争议的问题,可能某些高端全闪存存储上并不存在写峰值的问题,因此如果是特别重要、压力特别大的系统,测试过程是不可或缺的。


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 11g RAC 是一种高可用性和扩展性的数据库架构,SGA(System Global Area)是属于Oracle数据库实例的关键组件之一。为了优化Oracle 11g RAC SGA,我们可以采取以下措施: 1. 调整SGA的大小:通过增加SGA的大小,可以提高数据库实例的性能。可以使用Oracle的动态SGA功能,根据实际工作负载动态分配和调整SGA的大小。 2. 分配适当的内存给不同的组件:SGA由多个组件组成,如数据字典缓冲区、共享池、重做日志缓冲区等。根据应用程序的需求,可以调整每个组件的大小,以便分配适当的内存资源。 3. 使用AMM自动管理内存:Oracle 11g引入了AMM(Automatic Memory Management)功能,可自动管理和分配SGA和PGA(Program Global Area)的内存资源。这使得动态调整内存变得更加简单和高效。 4. 使用In-Memory列存储:Oracle 12c引入了In-Memory列存储功能,允许将部分或全部表的数据加载到内存中进行查询,以提高查询性能。可以考虑使用此功能在RAC环境中提升SGA性能。 5. 使用高性能存储系统:SGA的性能还受存储系统的影响。选择具备高性能的存储系统,如固态硬盘(SSD),可以显著提高SGA的性能。 总之,通过适当的SGA调整、内存管理和存储系统的优化,可以提高Oracle 11g RAC系统的性能和可用性。这将有助于提升数据库的处理速度,提高应用程序的响应性和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值