简介
最近您可能经常听说双核心处理器,以及最流行的数据库环境中对这种处理器的许可方式。Microsoft 在 2004 年末宣称,对于一个双核心芯片,他们只按一个处理器收费。从那以后,对于供应商应该如何顺应硬件技术的变更而为他们的软件计价这个问题,人们纷纷作出辩论、预测和讨论。就在本文撰写之前,Oracle 宣称,对于任何服务器上的软件,他们将按每个核心来计价,摆出与市场强者 Microsoft 针锋相对的姿态。
自从 Microsoft 宣布了对双核心处理器的计价方式之后,虽然当时在任何双核心架构服务器上都还没有可用的 Microsoft 软件,但还是有越来越多的客户问到关于双核心服务器和 IBM DB2 Universal Database for Linux™、UNIX® 及 Windows® (DB2 UDB) 的许可问题。除此之外,他们还问到在利用用于服务器整合的硬件技术时,有关随需添加(sub-capacity)的计价问题。
不同的供应商使用不同的或相似的术语来表示影响许可的不同事物,从而造成更多的费解。例如,对于某些供应商而言,一个核心就是一个处理器,而另一些供应商则认为处理器就是插在一个插座中的芯片,当然还有其他的说法。为硬件服务器增加了创建静态和动态分区的能力。 (在本文中我将它们称作逻辑分区,或者 LPAR,但是不同的硬件供应商可能有不同的叫法),您可能还有更多的问题要问。
在本文中,我将讨论 DB2 UDB 在双核心环境中的许可授权考虑,并深入阐述这种技术及其相关术语,使您更好地从总体上理解该领域。在本文的结尾处,我还讨论了随需添加的计价问题,这在如今的服务器整合领域是一个热门话题。
IBM 对核心的定义
很简单, 核心(core) 就是执行计算机命令的电路部件。而 芯片(chip) 是将核心封装起来的一块硅片。双核心是指一种芯片设计和制造能力,它可以使两个处理器核心共存于一个物理芯片中(有人甚至将其称为 'SMP 芯片')。而对于目前常见的工作站(很可能您桌上放着的那台机器就是),更多的情况是一个芯片中只有一个核心。
下面的图 1 展示了单核架构:
图 1. 单核处理器
我们可以放心地假设,在当今市场上,从许可授权的角度来看,每个人都将上图看作一个处理器。而在单核架构上又实现了一些性能提升技术,可以帮助提升实际处理速度或吞吐率。
例如,Intel 的超线程(hyper-threading)就是这样一种技术,对于一些关键工作负载,它最多可以将性能提升 30%。在继续我们的话题之前,首先来看一下术语:
线程 是指令序列。处理器中的线程是一种设计技术,允许两组或多组指令同时执行,从而提高性能。
超线程 是以一种高效的方式实际调度不同线程执行计划的能力。
DB2 UDB 支持超线程,但由于该项技术并没有成倍地提升 DB2 UDB 服务器的总体性能,所以对此没有额外收费。(基于同样的原因,对于任何数据库服务器都不会为此收取额外费用。当然,我相信某个人在某种服务器上用某种工作负载也许可以证明我错了。)其他基于性能的芯片增强,例如 SMT,在 DB2 UDB 同样也受支持,并且不收取额外费用。
在 2000 年 10 月,IBM 引入了一种新的高可伸缩性微处理器,即 Power® 芯片(起初是 Power4 系列,后来被 Power5 代替,之后还有 Power6 计划,等等)。这些 Power 芯片实现了单芯片(插入到主板上的部件)上的双核心(所以能够让两个独立的电路单元执行计算指令)。实际上,如今的 Power5 架构拥有超过 50 项产业标准和应用 基准记录,涵盖广泛的技术和商业工作负载。不久之后,其他硬件供应商也纷纷效仿,例如 HP 和 Sun。最近,Intel 和 AMD 也已经将这项技术引入到他们的芯片家族。
双核心芯片的优点是,它们可用于提高性能,减少电源要求,同时还减少其单核心同类产品由于越来越高的时钟速度而产生的热量。双核心芯片同时也更为紧凑,这意味着它们的物理需求更能符合其单核同宗芯片的生产线,因为他们具有相同的构成因子。双核心芯片还显得更加适合于环境更加友好,它们的电力和冷却(HVAC)需求更低。此外,缓存内存的接近也能产生性能优势。
就性能而言,专家已经叫停了摩尔定律(预测计算机芯片的处理能力大约每 18 个月翻一番),这导致业界对双核心处理器的广泛关注。最近,像 Intel 和 AMD 之类的商业芯片制造商宣布了他们的 2005 产品,将推出他们的第一代双核心芯片,以帮助通过近几代中增加的芯片处理能力赢得先机。
下面的图 2 展示了双核心架构:
图 2. 双核心处理器
实际上并没有很多的不同之处。插入到主板插座上的硅片仍然是一片。然而,如前所述,在这种架构中,有两块电路用于执行计算指令。
DB2 UDB 如何针对双核心芯片进行许可授权?
随着双核心技术的出现,围绕处理器这个术语有很多混淆的地方。例如,IBM Power5 服务器(和它们的基准)在官方是按核心数量报告的。所以,16 路 Power5 SMP 服务器有 16 个核心,但是实际上只有 8 个插座用于插入物理处理器。而上次经过我的查证,Sun 将双核心芯片称作可以运行两个线程的一个处理器。带有 4 个双核心处理器的 Sun 机器被称作 4 路 SMP 机器。相反,IBM 将此称作 8 路机器(因为它有 4 个双核心处理器,相对于 8 个核心)。所以,Sun 所谓的 4 路机器与 IBM 所谓的 4 路机器是不同的 - 千万要小心。此外,HP 将一个双核心芯片称作一个处理器。所以,8 核 HP 系统被称作 4 路 SMP 服务器,更令人费解的是,处理器和双核心芯片这两个术语在他们的文档中是可以交换使用的。
SAP 和 TPC 基准不要求硬件供应商在公布他们的结果时列出所使用的核心数量。然而,SPEC 基准规则(例如 SPECfp_rate 2000)要求按处理器核心数量表述结果。例如,Sun Fire V40z SPECfp_rate 在 4 路机器上的结果被列在 8 路结果的类别之下。也许这就是为什么 IBM 决定按核心而不是物理处理器来标识服务器的 SMP 属性的一个原因。建议在比较解决方案的性能结果时查看处理器核心。
通常,对于 IBM Software Group 而言,一个 处理器 是一台计算设备中用于解释和执行指令的一个功能部件。对于其他各方而言,在多核技术下,每个核心被认为是一个处理器。例如,在一个双核心 Power5 芯片中,如果按每处理器的方式进行软件许可授权,那么要计为两个处理器(不要因为某些地方发生了变化就抛开本文,稍后有更多讨论)。
如今,对于基于 Power5 的系统(以及其他具有双核心架构的非 IBM 高端处理器 - 基本上,只要不是 Intel/AMD 的 OpenPower 710/720 服务器或 x86 架构的服务器都属于此类),IBM 将一个核心定义为一个处理器。这样看起来比较合理,因为不但每个核心都能独立执行软件,而且标准性能测试也显示,在这些双核心架构下,处理能力大约是以前的两倍甚至两倍以上。
例如,考虑 IBM 在 2004 年 7 月(这个时间到本文撰写之际大约是一年,基准领域的一个生命期)宣布的 DB2 UDB TPC-C 16 路结果。用于该基准的 Power5 双核心架构产生了令人印象深刻的结果。特别地,这个 DB2 UDB 基准在一个 16 路 IBM eServer p5 570 服务器上运行,取得了 809,144 tpmC - 这超出了那些拥有多达 4 倍以上的经过许可授权的 CPU 的系统上的结果。
例如, 当前 SQL Server's best overall TPC-C result 在一个64 路 SMP 服务器上运行,取得 786,646 tpmC 的结果;而 DB2 仅仅用了四分之一的处理器就胜过了这个结果。(记住,在 Power5 双核心架构下,每个核心都被认为是一个处理器,而不是每个插座对应一个处理器。IBM 16 路结果引用核心数量,所以实际上机器上有 8 个插座。有些供应商会将此称作 8 路双核心系统,而 IBM eServer 称之为 16 路服务器,这是由于他们对处理器这个术语的不同解释而导致的。)
这只是前沿双核心服务器性能特征的一个例子。在 2004 年 11 月,IBM 发布了 64-way TPC-C result,其性能比 SQL Server 64-way result 高出 400%,比使用 64 个处理器的 Oracle's top TPC-C result with the Real Application Clusters (RAC) technology 高出 270%,比使用 64 个处理器的 Oracle's best 64-way SMP TPC-C 高出 318%。所有这些竞争结果都是在单核架构上取得的。
这次讨论的目的不是要吹嘘 DB2 UDB 的性能(我承认有那么一点),而是说明一个设计良好的双核心架构的潜在威力。
由于上面所说的原因,IBM Software Group 对基于 Power5 和其他非 x86 或 OpenPower 710/720 架构的机器按每个核心计价。如果一个 Power5 服务器有 8 个物理处理器(不过它不会被称作 8 路机器),那么就必须购买 16 个 DB2 许可(因为每个处理器有两个核心)。记住,不同的供应商有不同的术语框架。我尽力说明 IBM 如何对基于处理器的产品进行许可授权,以使这些术语能关联起来。由于 eServer 机器出售时可能不是用处理器这个术语,这里为了简单起见我作了映射。
在前面提到的 16 路 TPC-C 结果中,当和 Microsoft SQL Server 作比较时,即使少购买 48 个 CPU 的 DB2 UDB 数据库软件许可,也仍可以取得更好的性能(在此服务器上,8 处理器 x 2 = 16 个许可)。这里不仅少了 48 个 CPU 的软件许可,而且需要的维护也更少,同时潜在的硬件成本也更低。
虽