分类归档: Database

NUMA 架构与数据库性能

在这次的 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

Image via Wikipedia

对一个 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 特性了。而类似跑数据统计的应用,”CPU的并行”得到利用之后或许应该考虑如何更充分利用 NUMA 特性了。

4130467396_b00ea856b8.jpg

旧金山第二天: OOW Keynotes

Larry Ellison 出场赢得了不小的欢呼声, 前几张 PPT 就是前几天在网上公布的声明以及对 IBM 下的的战书。

Larry_OOW.jpg

志得意满的拉里重申了对 Sun 的一些产品的看法,与麦克利尼的说法相互印证了一下,如出一辙。另外也阐述了一下对 MySQL 的看法,再次提到了 Oracle 早就拥有 InnoDB ,还赚钱了…

IBM 跑 TPC-C 用的机器是 76 个机柜的集群(现场大笑):

IBM_TPC-C.jpg

Larry 嘲讽IBM 所谓 “构建智能的星球” ,对比 Oracle + Sun 用来跑 TPC-C 的所用的机器:(9个柜子,还具备容错)

Sun_TPC-C.jpg

Larry 不忘调侃, “…(IBM 的集群是如此费电),IBM 的处理器命名为 ‘Power’,你们知道为什么了吧?” 现场哄堂大笑… 接着这家伙放出豪言,如果谁能证明 Oracle + Sun 的机器不比数据库跑在 IBM Power 机器上快两倍,Oracle 将提供一千万美元的奖励…

演讲结束的时候,麦克利尼上来,并且重申了”网络就是计算机”这句名言。听来不胜唏嘘啊。曾几何时,Sun 是少数能抗衡 IBM 和微软的公司,现在在 Oracle 这棵大树下乘凉了,不管如何,这就是现实。

听完了主题演讲,深深感到尽管 Web 2.0 相关的新闻和技术每天吸引着我们,但是传统软件依然有其魅力,有其庞大市场。

能容纳6000人(?)的大厅座无虚席,来自世界各地的参会者参加了这次演讲。组织还是很有序的,我有幸得到了一个媒体席的座位,旁边坐着的是来自韩国和日本的技术记者。相比之下,他们更专业多了 :)

EOF

Tom 不是 DBA

Thomas Kyte.jpgTom,Thomas Kyte ,一个人支撑 AskTom 的那个家伙,最近发了一篇文章,说在经过九年零九个月之后,他终于不用管理 AskTom.oracle.com 的数据库了,也不用充当半个系统管理员了(言辞间颇见感慨),这个站点的内容全部迁移到 APEX.oracle.com 下。他的同事 Joel Kallman 负责维护的事情,并且也 说明了此事。

当然,这不意味着 Tom 不再回答用户问题。但至少预示着或许 Tom 已经真的准备退休啦。做了这么多年,功成名就也该隐退了。Tom 或许是最好的技术布道者,在网络还不发达的年代,AskTom 这个站点Oracle 用户答疑解惑。那时候闲着没事翻站内的问题研究是一大乐事。这个自谦大约懂得 Oracle 90% 的技能的人帮助了无数多的人,也无形中拉近了用户和 Oracle 公司之间的距离。

前一段时间看圈子里又在讨论”DBA 有什么前途“的问题, 我们都是普通人,做任何一份工作都会遇到类似的疑惑,或许应该学习 Tom 这个好榜样。Tom 现在是 Oracle 公司的 VP。自从 1988 年开始使用 Oracle 数据库,到 1993 年进入 Oracle ,后来开始一个人弄 AskTom 这个问答站点,一做就是十几年。如果他也时不时的考虑做个 … 有什么前途的话,估计早就改行去做别的了。

EOF

OLTP Database Machine with Sun FlashFire Technology

Oracle 的这个 “the World’s First OLTP Database Machine with Sun FlashFire Technology” 有些唬人。FlashFire 是个什么东西? 看名字有些像 SSD 产品。可能是 Sun 原来的 F5100 系列的产品,号称 1U 闪存阵列能达到 100 万 IOPS ,10 GB/秒吞吐,听起来足够强悍。(refer)

至于之前和 HP 合作的 Exadata 产品线看来要没戏了(因为芯片用得是 Intel 的),个人不太看好Exadata ,总觉得会在公司角力中牺牲掉这个东西,何况技术上没有什么大的优势,尤其是 SSD 存储要起来的时候。

做个记号,等 Larry 大爷把谜底揭开后再补充…

EOF

更新:神秘兮兮的遮掩了好一段时间,原来还叫作 Exadata ,只不过是 Exadata 第二版。新的 Exadata 可以跑 OLTP,芯片就是 Intel Xeon (Nehalem) –我之前的猜测都不靠谱。至于软件方面,主要是 Oracle 11gR2 的新特性 Hybrid columnar 压缩有点意思,当然,这东西还不是彻底的列存储。

Jametong 同学推荐关于 Exadata 最权威的信息可以翻墙订阅:Kevin Closson’s Oracle Blog

更新:FlashFire 是 SLC(单层式储存) 的 SSD 。可以与 ZFS 友好集成。(refer)