ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据库集群服务器系统性能瓶颈分析(zt)

数据库集群服务器系统性能瓶颈分析(zt)

原创 Linux操作系统 作者:zhouwf0726 时间:2019-04-18 07:45:07 0 删除 编辑

1.引言
数据库集群服务器产品采用集群作为基础的体系架构。由于数据
库集群服务器平台上部署的是Oracle RAC 数据库, 所以我们就从
Oracle RAC 数据库的通信机制开始分析。RAC 作为Oracle 数据库的
一个组件是从Oracle 9i 版本开始的, 其目的是最大限度的挖掘集群
这一体系架构的潜力。在RAC 通信机制中, 为了更多的消除磁盘IO
对系统性能的影响, Oracle RAC 通过一个叫Cache Fusion( 缓存融合)
的机制, 即依靠软件自身的机制来把各个节点的数据库内存虚拟成一
个大的共享内存供Oracle 使用。
简单而言, 数据库软件就是提供了一种对数据进行操作的平台,
因而数据在磁盘、内存、处理器之间移动过程中所产生的瓶颈也是最
终系统体现出来的瓶颈。对于Oracle RAC 而言, 是如何对数据进行访
问和操作的呢? 在RAC 节点相互通信过程中, 某一正在工作的处理器
首先从自己节点所在内存读写数据, 如没有会通过高速互连通道向其
他节点内存读写( 进程间通信IPC) , 最后才向共享磁盘读写。这种数
据访问顺序的采用是因为从内存读取数据的延迟要低于从其他节点
内存读取数据的延迟, 而从其它节点读取数据的延迟要低于从共享磁
盘读取数据的延迟。这里涉及到几个关键的因素, 即内存访问、进程间
通信、磁盘IO 访问, 下面将对这几个因素逐一加以分析。
2.内存访问
我们知道, 在数据库访问过程中, 数据是先从磁盘空间读入内存,
然后供CPU 来调配使用的, 因而内存空间越大, 需要访问的数据就能
更多的放在内存中, 从而提高实际的数据访问处理速度。造成内存访
问空间限制的原因在于对内存寻址空间的限制, 在数据库集群服务器
中, 节点采用的是32 位Xeon 处理器, 操作系统的有效内存寻址空间
为4G, 除去操作系统自身所占资源, 供Oracle 所支配的内存空间也就
在2G 左右。
为打消由于内存空间引起的系统瓶颈, 通常内存为满配, 即以单
条最大容量的内存插满服务器的内存槽。以IA 架构服务器的TPC- H
测试为例, IA 架构服务器产品有16 个内存槽, 因而配置了16 个2G
的内存条, 整个系统内存空间达32G。但前提是系统支持64 位寻址
( SP3000 采用64 位安腾处理器, 支持64 位寻址空间) , 在32 位处理
器系统上就无能为力了。
不过内存访问空间的瓶颈现在已经得到解决, 在Intel 推出Xeon
EM64T 之后, 对内存的寻址空间突破了4G 的限制, 从而操作系统和
数据库软件就不存在内存支配空间的限制了。未来数据库集群服务器
的节点内存将不再受限于4G 空间的限制, 将在一定程度上缓解由于
内存空间限制而引起的系统性能瓶颈的产生。
3.进程间通信
从Oracle RAC 数据库节点间的通信机制可以看出, 数据需要频
繁的通过高速互连设备进行交互, 因而高速互连设备性能的好坏也是
影响Oracle RAC 性能提升的主要瓶颈之一。目前比较常见的是采用
千兆以太网作为RAC 节点间的高速互连设备, 但从实际运行的情况
来看, 性能指标并不理想, 甚至出现了采用RAC 集群系统的性能甚至
比采用单机的性能还要低的现象。由于RAC 节点间通信机制是以
UDP 协议为基础开发的, 而UDP/IP 协议栈的通信延迟较高, 随着
RAC 节点数目的增加, 节点间频繁的通信会导致Oracle RAC 数据库
整体性能急剧下降, 所以寻求具有更高通信性能的高速互连网络或协
议成为改善Oracle RAC 性能的手段之一, 而Oracle 公司为此问题的
解决也在做着不懈的努力。
InfiniBand 技术的出现使得RAC 通信性能的明显改善成为了可
能。Infiniband 技术的最大的特点就是拥有较高的通信带宽和较低的
通信延迟, 在InfiniBand 的几个本地协议中, uDAPL 协议是效率最高
的, 其带宽高达6.4Gb/s, 延迟低至8us( 2004 年数据) , 但需要上层应用依据此协议重新改写, 对于Oracle 这样的数据库系统, 工作量之大
可想而知。
与此同时, 基于InfiniBand 技术的另一个协议—— RDS 协议, 逐
渐得到了Oracle 的青睐。RDS 协议的全称为Reliable Datagram
Sockets, 在InfiniBand 技术框架中是为取代UDP 协议而产生的( 正如
SDP 协议取代TCP 协议一样) 。通过采用RDS 协议, Oracle RAC 数据
库仅需改写很少部分代码即可, 与uDAPL 协议相比, RDS 协议的性能
比前者略有降低( 5%左右) , 但却极大的简化了Oracle RAC 的开发工
作。经过前后5 个月的短暂时间, Oracle 即完成了基于RDS 协议的开
发和稳定性测试等工作, 在即将发布的Oracle RAC 10.2.0.2 版本中,
将会实现对RDS 协议的全面支持。
采用RDS 协议后, 系统性能到底提升到什么程度呢? 采用RDS 协
议后, 节点间通信性能确有明显的提高: 与千兆以太网互连( TCP/IP)
相比, 节点数据吞吐量提高了一倍, 与此同时CPU 利用率和节点通信
物理延迟降低了一倍。
4.磁盘IO 访问
从过去20 年间到现在, CPU 处理速度增加了570 倍,而硬盘速度
仅增加了20 倍, 存储系统的硬盘容量增长幅度远大于硬盘转速的增
长, 使硬盘单位容量的I/O 性能越来越低, 磁盘IO 性能已经成为严重
制约系统性能提升的瓶颈。伴随着数据库应用的快速发展、业务和数
据库用户的逐年扩大导致的并发容量暴增给本来已经是系统瓶颈的
存储系统雪上加霜, 即使不断的采取措施优化设备, 无非是想自己的
硬盘转得快一点, 但到最后还是收效甚微。
为了最大限度的降低磁盘IO 访问瓶颈, 通常是采用增加磁盘数
量的方式, 以提高磁盘IO 的并行访问效率。单纯的增加磁盘的转速以
提高IO 访问性能, 或者增加磁盘数量提高并行访问效率的做法, 都有
一定的局限性。到底该如何解决存储系统性能问题呢?
近几年来, 电子存储设备Solid State Disk(固态磁盘)的出现为解
决这一技术难题提供了有效的解决方案, 并已经呈现出有逐步取代传
统磁介质存储设备(机械设备)的趋势。SSD 采用DDRRAM作为存储介
质、仿效传统磁盘驱动器的设计、可被各种操作系统的文件系统工具
进行卷设置和管理, 并提供工业标准的PCI 和FC 接口用于连接主机/
服务器或存储网络的存储设备, 可分为SSD 驱动器和SSD 盘阵列二
大块, 是一种真正高性能的存储。
固态硬盘丢弃了传统硬盘的机械特性, 数据查找时间、延迟时间
和寻道时间几乎为零。众所周知, 磁盘访问时间=指令到达时间+寻道
时间+命中时间+机械延迟, 而硬盘的机械特性严重限制了数据输入输
出的性能。采用SSD 方式的固态硬盘, 性能要好于HDD 硬盘100 倍
以上, 性能提升非常明显。
5.结束语
内存访问、进程间通信、磁盘IO 访问三种因素所产生的硬件瓶颈
构成了Oracle RAC 数据库整体性能的瓶颈, Intel EM64T 体系架构的
芯片组、高带宽低延迟的互联设备以及固态硬盘的出现已经使系统性
能大大提升。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/756652/viewspace-485740/,如需转载,请注明出处,否则将追究法律责任。

上一篇: trigger+lob+ora-22275
下一篇: Oracle Coherence
请登录后发表评论 登录
全部评论

注册时间:2006-02-22

  • 博文量
    458
  • 访问量
    343410