Oracle调优,NUMA架构与Intel Nehalem CPU

数据库 Oracle 数据库运维
对于传统 SMP 来说,CPU 增多未必系统性能就好,因为共享系统总线的限制了 CPU 数量,CPU 越多内部通信量越大共享总线越容易达到瓶颈。而NUMA架构则多少解决了这个问题,从而也是Oracle调优需要利用的特性。

Fenng前日去了Oracle Open World大会,回来后在博客上分享了他对于Oracle调优的一些心得总结。

在这次的 Oracle Open World 上,Hammerora 的作者 Steve Shaw 做了一个关于 Linux 平台 Oracle调优的演讲,其中重点提到了 NUMA架构对于 Intel Nehalem CPU 上跑 Oracle 的性能影响。

对于传统 SMP 来说,CPU 增多未必系统性能就好,因为共享系统总线的限制了 CPU 数量,CPU 越多内部通信量越大共享总线越容易达到瓶颈。而 NUMA架构则多少缓解了这个扩展问题,其大致机理是通过给每个核提供单独的本地内存,进而提高可扩展性。而每个核访问本地内存和其它核上的内存时间是不一样的,所以,应用程度对于内存的访问是有比较大的讲究的。从硬件到操作系统再到应用程序,都要支持 NUMA 才会发挥真正的处理能力。

在这里倒是可以插入介绍一下阿姆达尔定律(Amdahl's Law),这个定律指出并行处理器环境中的速度受制于程序串行的部分,也即暗示说多核未必性能就那么好。

Intel Nehalem microarchitecture

对一个 DBA 来说,Intel 的 Nehalem CPU (右图为结构示意图)最值得关注的特性当属 NUMA (Non-Uniform Memory Access) 架构方面的改进。

从 Oracle 数据库 8i 开始支持 NUMA 特性,NUMA 在10.2.0.4 与 11.1 上是默认启用的,不过在之前的版本以及 11.2 之后默认是关闭该特性的。在 Intel 平台上,Oracle Validated RPM 包安装后将激活 NUMA。安装的时候,当 Oracle 检测到硬件与操作系统支持 NUMA 的时候,会自动启用 NUMA 支持,Linux 在内核 2.6.9-67 以后自动支持 NUMA 。至于硬件上的开关是通过 BIOS ,如果硬件支持,则 BIOS 默认是激活(enable)该特性的。操作系统层面的开启可以通过核心参数添加 numa=off 的方式来达到。

可以通过操作系统命令查看相关的状态:

# numactl --show

NUMA 这个常看到的术语,似乎一直以来没有得到 DBA 们足够的重视。需要注意的是,硬件、操作系统、应用软件(Oracle) 三者都要支持 NUMA ,才能充分利用这一特性。对于支持 NUMA 的 DB 环境,理论上来说内存请求的利用应该会更有效一些。至于具体的性能数据还要看实测结果,暂时恐怕难以给出,留待以后补充吧。必须要说的是,作为DBA,在启用某个特性的时候,一定要明白这个特性的来龙去脉,以及潜在的影响。

延伸阅读资料

--EOF--

对于一些不能充分利用多核的软件,比如某些 Web 服务器或者 Proxy,或者需要考虑一下如何利用 NUMA 特性了。

原文标题:NUMA 架构与数据库性能

【编辑推荐】

  1. Unix环境下的Oracle调优
  2. Oracle调优综述
  3. Oracle创建管理员步骤概述
  4. Oracle密码安全问题佚事
  5. 七步详细分析Oracle表空间
责任编辑:yangsai 来源: dbanotes.net
相关推荐

2010-04-07 13:32:39

Oracle调优

2011-05-20 14:23:01

Oracle调优

2009-03-24 12:48:56

Nehalem服务器Intel

2011-05-18 10:16:24

Oracle调优

2011-05-20 15:02:01

Oracle性能调优

2009-11-17 13:45:12

Oracle SQL调

2010-04-19 13:50:27

Oracle调整

2021-09-06 11:02:17

JVM架构调优

2021-07-15 08:00:47

系统性能调优cpunuma架构

2011-05-19 14:11:29

Oracle

2019-12-03 10:40:25

LinuxCPU网络调优

2021-11-21 23:03:38

jvm调优虚拟机

2012-01-10 14:35:08

JavaJVM

2010-04-12 17:30:44

Oracle SQL调

2009-04-01 11:17:52

内存分配调优Oracle

2009-11-17 14:50:50

Oracle调优

2023-12-08 07:49:47

CPU内存性能架构

2017-07-21 08:55:13

TomcatJVM容器

2011-05-24 09:45:41

Oracle数据库系统调优

2010-04-22 16:39:21

Oracle 调优
点赞
收藏

51CTO技术栈公众号