操作系统资源对Oracle性能的重要性

Oracle数据库是建立在服务器的操作系统上的一款软件,所以Oracle的性能非常依赖服务器的硬件和操作系统的性能。因此,在诊断性能问题时,应将操作系统资源指标视为整体性能指标的一部分。其中CPU、内存、I/O是既相互独立又相互关联的三大操作系统资源。


CPU资源

CPU资源是否紧张可通过检查CPU的利用率及等待运行的进程数量来了解,CPU运算速度主要受主频( Processor Clock Speed )高低和缓存( Cache Memory )大小影响。

比如,在OLTP业务系统中,由于每个CPU在特定时间内只允许一个进程运行,所以这里的CPU个数决定着事务的运行效率。而在OLAP系统中,由于并发需求不高,反而每次运算的时间较长,所以这个时候CPU的主频决定了事物的运行效率。

在很多的管理员中,认为CPU资源使用率越高说明Oracle的性能越差,但是这个不是批评性能优劣的唯一指标。因为合理并最大限度地利用系统资源是数据库优化的目标之一。


内存资源

我们经常讲的内存资源,主要包括物理内存和虚拟内存两个方面。当进程需要新的内存资源,而实际内存资源不足的时候,系统会把部分活动性弱的内存数据写人虚拟内存,在进程需要的时候再次从虚拟内存中读出。为提高Oracle运行性能,则要求没有进程被交换到虚拟内存中。

确实这样子把数据全部放在内存中,可以提高数据库性能,但是大内存并不能保证数据库系统的性能一定很优良。虽然数据块的BUFFER CACHE命中率为100%,但并不能保证SQL的运行效率高。提高SQL运行效率的优化思路是降低SQL的逻辑读取数据块数量。内存一直是数据库性能优化时的重点优化对象,内存分配没有多少之分,够用就行。


I/O资源

I/O资源是系统资源中最慢的活动,存储I/O能力的高低通常用吞吐量、IOPS (I/O 每秒进行操作的次数)、磁盘响应时间等指标来区分。

决定存储性能的主要因素在于存储阵列的算法、Cache命中率,以及磁盘数、存储I/O总线的宽度。Cache 的命中率取决于Cache的算法、Cachesize的大小以及数据的访问规则。一般Cache的读命中率越高,支持的IOPS也就越高,因此,每个物理硬盘能处理的IOPS是有限制的。

存储的I/O响应缓慢往往是由以下因素引起的:

1、当应用所发起的IOPS超过物理磁盘的理论IOPS时,系统的I/O能力将急剧下降。

2、热点盘。即数据访问集中在几张盘上。

3、系统大量交换导致本地盘繁忙。

4、不合理的RAID配置模式。

5、存储性能瓶颈。主要表现为控制器不足或者I/O通道堵塞。

6、磁盘转速较低。

7、硬件故障,比如存储硬件的CACHE算法故障,导致命中率不够,最后导致I/O响应时间长。