服务器评测:摸清“性能”与“能效”

什么是一台服务器或一台计算机系统的性能?这个问题看似基础,但即使是比较资深的用户乍被问及时,恐怕也不免会酝酿一番,因为仅用片言只语,确实难以说清这一概念。

我们无法用简洁的言语概括计算机的性能,其实皆因它的体现必须要借助其他手段。这就如同要要看一个人的品格是否端正必须从观察其平日言行着手一样,要评估一个计算机的性能,我们也必须通过运行应用程序或计算任务的方法来考察。这种考察通常有两种,一是看执行时间,一种是看流量。

这里所谓的执行时间,是指计算机完成一个计算任务的时间,能以最快速度完成指定任务的系统,我们说它的性能就是最高的。这种以执行时间度量性能的方法,较适用于执行单任务的环境,而要测试像服务器这种几乎时刻都在并行执行多个任务的计算机系统,考察其流量,也就是看系统在单位时间能完成多少计算任务则是必须的,事实上,很多拥有大规模数据中心的管理者,都对提升服务器的工作流量非常在意。

了解了服务器性能的体现,我们也就明晰了它的概念–它其实并不像其他产品那样侧重功能和质量,而是一种技术能力的反应,而且这种能力的高低,必须要用应用来体现和衡量。

摸清计算机的性能后,进而理解能效也就不再困难。它是系统的性能与功耗的比值,也就是每瓦功耗换得的性能。只不过,这个功耗并不是一个瞬时值,而应该是系统执行单个或多个任务时的平均功耗。

能效这一概念在最近几年来很受业界及用户追捧,主要是因为能源紧缺以及能源浪费带来的环境危机越来越严重所致,这促使人们也开始用"吃多少草、挤多少奶",甚至是"少吃草、多挤奶"的原则来指导计算机技术的发展。英特尔的智能服务器处理器在利用全新微架构大幅提升性能的同时,还不忘导入智能节能技术来根据应用负载精细地调节自身的功耗,去尽力实现输出多少性能就消耗多少电能的目标,其实就是受这一量入为出的原则影响。

我们在这里重谈服务器或计算机系统的性能和能效概念,其实并不仅仅是要帮助大家温习它们,而是希望说明它们都是时刻处于动态变化中的。暂且不论同一台系统在两次运行同一应用中表现出的细微性能差异,相信在很多媒体朋友评测服务器时,也会经常遇到它在某些理论性能测试中表现出色,但在贴近实用的测试中表现却不尽人意,或是一台系统在不同类型的应用测试中表现不一的情况吧?这种变化确实令人困扰,但对它们进行客观深入的分析,找出造成变化的因素和能推动这种变化向良性发展的方案,则就是对最终用户采购和应用服务器非常有意义的事情了。

在下一篇文章中,我们就将试图对影响服务器性能和能效表现的一些重要因素进行分析,从中大家也可以进一步理解英特尔一直强调的、在其智能服务器平台上表现得淋漓尽致的"平衡"理念的实际效用。

如今人们在谈及影响一个人或一个组织机构的能力或竞争力的因素时,总爱引用"木桶原理",即以木桶盛水多少是由其最短一块木板决定的物理现象,来形象地说明个人或机构在某个环节或方面的不足,可能会拖累其长处的发挥、进而拉下其整体水平的现象。其实,这个原理对于包括服务器在内的所有计算机系统也同样适用。本着以小见大的原则,我们想先从处理器入手,来说明该原理对计算机系统的影响。

众所周知,在多核时代到来之前,人们选择处理器时最看重的规格就是其时钟频率,而在多核处理器普及后,又有一些厂商和用户倾向于以内核数量的多少来判断其性能高下,其实,这两种做法都有失偏颇。大家还记得我们在上一篇文章中提及的–计算机系统的性能是通过它完成特定程序或计算任务所需的时间来体现和衡量的理念吧?以此为基础,业界的专家早在上世纪80年代就提出了一个处理器性能公式,点出了影响它的三大要素,即时钟频率、每时钟周期可执行指令数(缩写为IPC)以及应用程序的优化情况。

时钟频率对于处理器性能的作用无须赘言。但是,只有在IPC相同的情况下,其快与慢才能反映处理器性能的强弱,而在处理器微架构不同、IPC有差异明显的情况下还执着于时钟频率的比较,就不免会步入歧途了。

再谈IPC,它其实就等同于处理器的效率,现阶段绝大多数处理器在微架构方面的改进,主要目标都是为了提高IPC。例如英特尔从 NetBurst到Core,再到现在的Nehalem微架构,最大的进步就在于IPC越来越强。增加处理器内核数量同样有助于提升总的IPC,但就像我们不能单纯以时钟频率来判断处理器的性能一样,我们也不能仅仅依据处理器内核数量的多少来预测其表现。

举例来说,假如一款处理器单个内核的平均持续IPC要高于另一款处理器,那么后者内核数量即使比它多,在性能上也不一定能超越前者,这说明处理器并不是内核数量越多就越强,而应是总体的实际工作效率越高越好。如果有了出色的实际单时钟周期指令处理能力,再乘上较高的时钟频率,这样的处理器在设计上也就奠定了实现高性能的基石。

相对于以上两点,应用程序的优化这一偏"软"的因素对处理器性能的影响可能就有些令人费解了,但看到很多单线程软件在多核平台上不尽人意的表现后,大家可能就会明白其意义所在。这种优化,在过去是指要尽量精简程序的指令,而在今天,则还包括了针对处理器多线程并行处理能力的优化,惟有如此,它才能真正最大化地利用到并反映出处理器的性能。

上述三个因素,严格来说只是决定处理器性能表现的最关键的因素而已,它们中有任何一个成为短板,势必就会带来不利影响,因此它们之间达到一种平衡的状态就非常重要。当然,如果我们考察的是处理器的能效的话,那么需要平衡的因素就还会包括它的功耗。

现在我们如果将视野从处理器放大到整个服务器系统,不难发现,这个木桶原理依然有效,只不过处理器的性能此时已成为了影响服务器性能的一个因素而已,与它同等重要的,还有内存子系统的数据传输延迟、带宽和内存容量,存储子系统的数据读写和传输速度,网络子系统的带宽和预处理能力,以及处理器与这些子系统彼此之间的I/O性能等等。它们都相当于服务器这个大木桶上的一板,谁的表现不济,都可能牵一发而动全身,浪费其他"长板"的优势,或影响服务器的整体性能表现,或让其在某些应用中出现反常的变化。

针对这种情况,争取达到平衡依然是解决之道,英特尔现有的智能至强处理器平台在这方面的表现就值得一提:它的处理器不仅导入了拥有出色IPC、并支持较高时钟频率的Nehalem微架构,而且它还通过处理器内置DDR3内存控制器和高速串行QPI总线避免了内存子系统和系统I/O上的瓶颈,而英特尔建议为其搭配的固态硬盘(SSD)和支持RSS队列的网卡芯片,则成功让存储和网络子系统的性能能够尽量跟上处理器的节奏,最后,英特尔的 Parallel Studio,则为最让用户和软件开发商头疼的多线程应用的开发和优化难题提供了解决方案。

由此来看,兼顾所有可能影响系统性能、能效表现的因素,应该是IT厂商在产品设计、开发过程谨遵的原则。但面对多样化、差异化的应用环境,真要做到面面俱到、平衡完美,其难度可想而知,因此用户在应用服务器产品的过程中,还是会遇到各种各样的问题,而分析这些问题,通过评测的手段找出其背后隐藏的短板,并与厂商共同寻求应对措施,就是资深的媒体评测工程师和用户技术人员能够充分体现自身价值的地方了。我们提出评测要向应用靠拢,也正是为达到这一效果。

在下一篇文章中,我们就将和大家一起检阅服务器评测中常用的一些工具,并介绍要针对应际应用环境来考察服务器、特别是要找到制约其表现的问题时应该采用怎样的策略。