您的位置:首页 > 其它

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

2017-11-29 14:44 573 查看
千尺之台,始于垒土”,硬件架构是决定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磁阵上。另外,这是一个存在争议的问题,可能某些高端全闪存存储上并不存在写峰值的问题,因此如果是特别重要、压力特别大的系统,测试过程是不可或缺的。

阅读全文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: