不要过度迷信小型机

来源:互联网 发布:淘宝客服的重要性 编辑:程序博客网 时间:2024/04/20 07:22

在 IT 行业很多工程师(尤其是很多 DBA)的心目中,都把小型机视为解决性能问题的终极武器,认为小型机的处理能力要远大于 PS Server。在几年前,可能也确实是这样。但随着近几年 X86 架构芯片技术的飞速发展,PC Server 的处理能力已经越来越强悍,不断的给我们带来惊喜。

最近几年的小型机市场,基本上被 IBM 吃掉了大部分。虽然可能并不完全是因为其 Power 芯片处理能力与其他厂商的芯片相比有优势,但其处理能力方面的优异表现确实是一个很重要的因素。所以最近几年我们一直关注着 IBM 小型机与其他主机的处理能力比较,当然比较是基于 Oracle 数据库所做的一些测试。

测试基本模型如下:

在待测主机上安装好 Oracle 数据库,配置足够装载下所有数据的 SGA,将 Oracle 的 Redo 日志放在内存文件系统上。然后在我们技术能力范围内对 Oracle 进行相应的调优。
使用我们真实的线上数据抽样(约10GB),Import 进入待测试主机上的 Oracle 数据库中。
通过 PL/SQL 编写出模拟我们在线业务中最为典型的事务逻辑,然后使用C++编写多线程程序作为压力测试客户端。
通过多台主机运行压力测试程序,平缓的给待测主机增加压力,待测主机的 CPU 利用率基本用完为止。
测试数据的收集主要通过恒定时间段的 Oracle 数据库自身性能数据采样(statspack),然后分析 statspak 中的每秒事务数。以往经验显示,基本上当客户端压力线程到达一定数量之后,处理量就比较稳定甚至下降。然后我们从中取出每秒事务数的最大值,做为该机器的 处理能力分值。

这个测试模型主要消耗的资源是主机的 CPU + RAM 的能力,而且当初也得到了 IBM 实验室的人认可。

通过这几年对几种主机处理能力跟踪测试情况来看,IBM Power 芯片的优势已经越来越不明显了,甚至其 Power 5+ 芯片的处理能力已经不如某些型号的 Intel x86 芯片的处理能力了,部分主机处理能力对比数据如下:

近四五年来的测试数据:
Sun v880(4C):                             160
Hp rx4640(4C):                           180
Dell 6650(2C):                             88(2核 CPU)
Dell 6650(4C):                            155
IBM P550(4c,Power 5):                294
IBM P590(8C,Power 5):                656
去年下半年至今年的测试数据:
IBM P590(16C,Power 5+):           1200
Intel (4c, Xeon(TM)):                   1210  (于去年下半年发布的6核 CPU)
Intel (2c, Xeon(R)):                      1170  (将于本月底发布的4核 Nehalem CPU,X5560)

从上面的数据中大家应该可以基本的了解到目前使用 Intel x86 架构的 Xeon CPU 的 PC Server 的处理能力了吧。当然,有些人可能会说,IBM Power 6 的处理能力与 Power 5 和 Power 5+ 相比有了一个较大的提升,事实如何我目前还不太清楚。但即使是其处理能力翻一倍,那也才与现在的 Nehalem 处理能力相当。

至于 PC Server 和 小型机在成本方面,这里就不多说了,我想大家都很清楚二者完全不在一个数量级上,甚至是相差两个数量级 :D。

可能有些人又会说,小型机在 HA 方面比 PC Server 要强。确实,这一点我是承认的,小型机的可靠性在一定程度上要比 PC Server 是要好一些,大部分设备出现故障后都不用停机即可在线更换。但随着分布式架构的不断成熟,通过架构来解决整体可用性的成功案例已经越来越多。现在该是我们 转换思路的时候了!