2006年9月15日,“IBM UNIX World 2006暨AIX 20周年庆典”大会在北京中国大饭店召开。2006年是业界领先的IBM UNIX操作系统AIX诞生20年,也是IBM UNIX World 大会的第六个年头。以下是IBM系统与科技事业部System p产品经理李川先生对UNIX主要技术参数与性能指标进行分析的演讲全文:
主持人:在我们体验完了来自于System p带来的强大动力,下一步领略一个UNIX带来的技术魅力。有请IBM系统与科技事业部System p产品经理李川先生。
李川:尊敬的各位来宾大家下午好,欢迎大家参加2006年UNIX World,接下来花一点时间跟大家分享一下关于UNIX服务器的技术指标和主要的性能指标的分析。
首先跟大家分享一下我所了解到的两个主要的误区,第一个是CPU等于性能,CPU越多代表性能越好。这在相当一部分人群里面还是有一定认可的,其实如果仔细来分析这一点,我们可以从两方面来看,如果纵向来看,对于一个厂商不同时代的产品来讲,显然CPU是没有可比性质的。比如2001年推出p690,采用32颗POWER4处理器,可以提供最大的tpmC值40万。到2004年推出1.9GHz的POWER4+,当时还是采用32颗CPU获得tpmC值1百万。去年随着POWER5推出提供32颗POWER5的595,这tpmC值160万,所以它能取得的tpmC值翻了四倍,即使对于同一厂家的产品,同样数目的CPU提供的性能有很大差别的。因为各个不同厂家对处理器研发所处的阶段不同,刚才通过刘星报告,POWER家族,包括POWER4、POWER4+以及POWER5和POWER5+获得了不同的成绩。另外在七月份Intel推出新一代安腾处理器,在这个处理器相对以前的安腾二的产品,CPU主频没有任何变化,它采用了新的双核技术,而且支持多线程。IBM第一个推出双核是2001年POWER4,第一个采用多线程处理器2004年推出POWER5,对不同的厂家来讲,在CPU开发和技术层面上所处的阶段点不同的,所以对于CPU之间的比较,我们理解不同的厂商,或者同一厂商不同时期的CPU之间很难进行比较的,如果相同的话可能能够提供给人的性能会相差很远。
第二个误区,我经常听到一些人讲,他们的观点是性能指标都是理想化的测试值,和客户真正实际应用的情况差距非常大,所以理想化的性能指标应用到实际业务当中,这种应用的效果可能非常差,这也是我经常听到的一个观点。从某种程度来讲,这个观点有一部分是正确的,因为在某些基准测试里面,确实是模拟了现实的环境,但仍然和现实的环境有相当的差距。我们针对这样一个观点理解,虽然有这种差距,但是这种差距不能阻碍我们还要去参考它,因为它仍然是一个非常重要的指标,因为如果把这个差距考虑在内,对于辅助我们选择服务器,辅助我们决定服务器的规模仍然非常有帮助的。
UNIX主要技术参数与性能指标分析李川先生 演讲
如果大家买车,可能会横向比较各个不同品牌、不同厂商车的指标,可能有一个指标,百公里油耗,大家可能都会看,比如这个车百公里油耗七个,那个品牌的车可能是八个,我们看指标的时候都知道,如果买了这辆车不可能开到他的油耗水平,因为测试提供这个数据会有很多限制,比如90公里匀速的限制,但是这个指标仍然是我们非常看重的指标,因为提供一个横向比较的依据,因为各个厂家所提供这个指标的时候,他们采用的标准是相同的,这种相同的标准对我们进行选择是非常重要的。我先分享对目前看到在Benchmark理解上的误区。
为什么需要基础测试,我们可以看到在网上也好,厂商提供的资料里面描述非常多的不同的值,这些基准测试存在的意义到底在哪儿?我们怎么使用它。第一点我们可以看到,目前随着不同行业的IT应用水平的提高,我们看到服务器的应用领域已经越来越广泛,生活中各个部分,或企业各个部分,不管是人力资源、邮件、办公、财务都会涉及服务器的应用。从图中可以看到,用户访问网上银行,或者企业内部的人事系统,财务系统都会经过服务器的处理,每个服务器在各个不同的应用方面分别扮演不同的角色,不同的应用,比如HR和财务数据库的类型,应用的方式可能完全不同。除了数据库应用之外,还会用到ERP,另外一台服务器可能承担邮件系统的功能,可能用到Notes。我们在越来越多的地方使用服务器,给我们提出了一个问题,在不同的应用领域和使用范围情况下,我们应该怎么样选择?因为我们知道一个ERP服务器和一个Notes的服务器要求是完全不同的,基于这样的情况,我们不能只看一个指标,简单的一个指标不能涵盖所有的问题。我们需要选择正确的性能指标供我们进行选择和参考。
除了应用领域的不同,在不同的服务器里面的产品架构和内部各个部分技术上的特点也是有很大差异的。我们确定服务器规模的时候主要考虑的因素,首先是系统的属性,针对这样一个服务器,从最大的部分看到最细小的部分,哪些决定我们的选择。第一点是体系结构,各个厂家的体系结构还是不完全相同的,比如System p5,在整个p系列服务器从过去几年发展一直采用最传统、最简单的SMP的结构,目前所有的内存和CPU都是对称的。SMP对应最极端的就是集群的结构,采用很多的服务器,可能不同的服务器有自己操作系统,通过集群中间有交换机,组建成一个集群来承担大规模的操作。目前很多高性能计算的领域都采用这样的做法。另外还有NUMA架构,采用搭积木的方式,每一个模块搭配一个CPU和内存,这样的方式可以比较好的实现模块化的扩展能力。比如HP和SUN采用CC-NUMA的架构,每个系统板都有自己的内存。SMP的好处是比较容易实现系统性能的线性扩展,如8CPU扩展到15个CPU性能提升,可能会接近于100%,NUMA或CC-NUMA性能扩展比较差。现在从服务器数量对比来讲,IBM是最少的。最大的是64颗处理器595,HP做到128颗,SUN做到244颗,所以他们采用NUMA可以实现CPU数量扩展,他们也有相关的问题,可能到4颗CPU到8颗带来的性能提升可能只有50%。
第二点就是处理器的类型,现在90%的64位计算服务器都是采用RISC的架构,可能PC和Intel的至强或者PC奔腾采用CISC的架构,另外比较特立独行是安腾采用全新的架构,既不是RISC也不是CISC,是EPIC的特殊架构。
第三个是操作系统,是选择UNIX的系统,还是Linux系统或者是Windows系统,对我们系统的规模都是不一样的,除了服务器一段,还要考虑关系密切的比如存储、网络等,要把一个系统作为整体考虑。
第二点是系统的性能,我分了四个不同的级别,一个是理论值,可以达到的理想状态,这东西设计本身可以达到什么样的理想状态,包括浮点运算的速度,内存带宽/延迟,以及I/O的性能。这是各个厂家设计时候所允许达到最大性能的情况。第二点就是业界采用的标准测试,这测试是某一个组织,比如为了适合某种应用的情况所设计出来的标准化的测试,可能实际应用不会碰到这样的应用,但是模拟的现实的情况。还有一些高性能计算,比如LINPACK等技术测试。第三个是ISV的应用测试,这是各个ISV根据自己实际的软件应用情况所提供给客户的一个参考值,比如SAP,很多客户可能内部在用一些软件,SAP就会提供给各个用户一个参考,比如你选用的硬件选型就可以参考这个指标,这种ISV指标和实际的应用非常接近。最后一个是用户针对自己开发的应用进行实际的测试,我的实际应用环境可能比较特殊,也有用户采用这样的方法,把几个厂商的设备拿在一起,然后把自己的应用放在上面跑,然后看什么样的配置和机型能够满足对性能的要求。我们拿自己System p产品来讲,从最高端到最低端,在某些设计方面有很大共性的,他们最大的不同就是扩展能力和处理能力。对于客户来讲虽然不认为性能是考虑的唯一因素,但是确实是定位服务器档次最重要的指标。很多客户实际选择的时候都会非常看重这个指标。
看一下服务器不同部分表现出对性能的影响。最右边是一个代表CPU计算器访问服务器各个部分需要的时钟周期,由最快到最慢的,访问一级缓存的时候需要一个时钟周期就可以抓到一级缓存,如果访问二级缓存可能需要7-10个时钟周期,到三级缓存会到100个时钟周期左右,到对内存的访问需要300个时钟周期。如果CPU需要到硬盘抓数据需要时钟周期可能上百万的,所以这个差异是非常大的,如果所有的内容、所需要的数据都可以在内存甚至更快的部分抓到,所需要访问的延迟只有300时钟周期的程度,要到磁盘上抓数据需要的延迟非常大,这是影响服务器性能的关键部分。
谈到POWER5性能的发展,从1997年S70发展到今天的595,可以看到蓝颜色的线代表系统性能的变化,红颜色的线是获得一个tpmC的处理能力所付出的成本。在过去十年里面tpmC值有171倍提升。从原来1万多的水平提升到320万,最近有一个400万的新产品。随着时间和技术的发展,同一个厂商所带来的技术进步是非常巨大的,如果比较CPU的话,技术水平差距是非常明显。
通过这张图希望给大家总结一下,我们怎么看待服务器的这些性能指标,因为我们可以想像,现在能够看到的非常多的性能指标。这张图按照服务器的部分或整体,包括服务器最快部分和最慢部分做了一个说明,比如对SPEC CPU来表示CPU整形和浮点计算能力,看到CPU本身的处理能力,如果选择比较的话,采用同样的CPU哪怕最高端服务器和最低端服务器,采用同样CPU,SPEC CPU的值没有差别的,这个指标是看不到CPU以外的东西包括内存和访问。SPEC web99到SPECjbb2000是表示内存的表现,如果看SPECjbb2000报告是不需要连接磁盘的。
另外有代表性的是TPC-C,是全面表达了处理器整体性能值,它在整个系统里面,到内存到I/O,包括部分网络访问都会涉及,所以TPC-C看到服务器的表现是最完整的。对于不同的性能指标也都代表不同的应用,主要看TPC-C。衡量JAVA主要看SPECjbb2000,而SPECCPU主要衡量纯,CPU整型和浮点处理能力,SPECweb99代表为web服务器针对HTTP的请求,所以没有万能的性能指标,只是代表某种类型的应用。相对来讲TPC-C最全面考察服务器的各个方面,因为包括CPU、内存等TPC-C都可以考察到。从另外一个角度p5产品本身整体设计的优势,包括很好的CPU,以及大的I/O带宽在TPC-C测试设计里面都可以达到完整的体现。
接下来会分别介绍一下各个测试指标的情况,首先是介绍TPC-C,这是当时测试时候的图,这是测试的中心P690,右边是连接了非常多的存储设备,采用147个MAST,有40快73G的硬盘,所以整个数据的容量非常大的。在前排有访问的工作站,提供请求,通过这样一个千兆的以太网交换机连接起来,可以看到TPC-C测试是两层的架构,TPC-C组织是1988年成立的非盈利性的组织,主要的厂商都是组织成员,在TPC-C设计里面,采用数据库类型的事务处理,叫OLTP,包括新订单支付、交付,订单状态,库存水平等都可以体现,衡量的指标是这个系统一分钟之内所能够处理的最大同期交易的数量,同时对每个事务处理90%的响应时间要小于等于5秒,对库存水平响应时间可以到20秒以内,它可以模拟批发商订单管理的系统,它代表系统最大交易持续的性能,它是最贴近于现在数据库操作,数据库应用类型的测试。可能各个行业在选择服务器的时候,最核心的就是规划数据库的服务器规模,如果大家在选择数据库服务器的时候,最有参考价值就是TPC-C指标。
在网上搜索截止2006年8月8号公布各个厂商TPC-C测试值的数量,排名第一的是HP,它提供94项TPC-C测试值,IBM排第二位,提供了37项,差不多是HP的1/3,其他的厂商更少一些,用黄颜色标出UNIX业界的三个厂家,HP最多,其次是IBM,Sun只有一个,还是2001年发布的,所以谈TPC-C的时候,Sun公司会说,他们已经觉得TPC-C不符合现在日新月异的发展变化,所以他们退出TPC-C测试,我们回过头看2001当时Sun的测试值和我们同时发布M85的TPC-C测试值比较一下可以看出,Sun在TPC-C测试上表现不是太好。另外一个竞争友商HP,是最积极参加TPC-C测试的公司,它提交的数量差不多接近于IBM的3倍,如果从数量来比是排在我们前面。但是从另外一个角度,列出目前主要的TPC-C测试结果,这些都可以在TPC-C网站上检索,表格的排序方法用的是每个TPC-C带来的性能值。第一位是2.2GHz IBM p5+570,第二位是2.3GHz POWER5+ 595,tpmC值从16颗CPU扩展到64颗CPU,CPU数量增加差不多四倍,带来性能提升接近4倍。接下来三个有1.9GHz POWER5 的570。排第六位是HP采用1.6GHz 安腾二,四颗CPU的tpmC值20万,每颗CPC带来的tpmC值是5万。和以前POWER5比较,四颗CPU是20万多一点,这是不是可以说明,一颗安腾二处理能力是不是和POWER5划等号,各个厂商的不同,性能有不同。另外在八颗CPU测出的值是30万,而IBM八颗测出的值是40万。在四颗CPU的时候HP表现不错的,但是在八颗CPU时候,HP所带来的提升是不够的,它带来的性能值差距和IBM是两倍、三倍甚至更多。在下面Superdome采用1.5GHz安腾二带来100万的tpmC,HP比较喜欢测四颗CPU的TPC-C值,这个做法和以前不太一样,因为大家普遍的做法是,如果推出一个新的处理器会用最高端的旗舰产品试图创造一个测试性能的记录,HP这几年比较喜欢测四颗CPU的性能,相对来讲可以找到16颗以上测试值非常少。
除了TPC-C以外,另外一个重要的指标就是TPC-H主要衡量商业智能的系统表现,BI和OLTP表现完全不一样,我们跑OLTP可能有大量的I/O访问,在BI更强调的是CPU的处理能力,以及CPU到内存的访问带宽。针对BI高性能计算的应用,我们有一个专门的产品针对这种特殊的类型,就是p5 575,这和其他的595、570等产品设计上有一点不一样,它主要强调一个是CPU速度、密度,以及CPU到内存访问的带宽,所以可以整合超过1千颗CPU,在这样的高密度情况下可以提供一个很好的CPU密度以及很好的计算能力。在TPC-H指标里有一个比较,蓝颜色代表QphH,黄颜色代表性价比。从直观来看,Sun E25k在第一位。p 575在第二,25K采用144颗,而IBM采用64颗处理器,Sup是采用两个结点64个CPU,另外一个也是采用64个内核,分别是144个内核对,64个内核对64个内核,它所带来每个处理器的核心性能是Sun的2.1倍,也超过HP两倍,所以575这个产品针对BI和高性能计算的应用非常出色的,而且设计上专门做了加强。
第二个重要指标就是SPEC,这里面有很多不同的指标,主要有两个一个是SPECCPU和SPECjbb,在2005年以前参考SPECjbb2000,去年SPEC组织推出新的做了一个更新,叫SPECjbb2005,为什么把两个指标通行并列在这,可以看到在SPECjbb2005相对SPECjbb2000有了改动,这使用户使用SPECjbb2005有一些困难。目前SPECjbb2005检索到的值比较少,所以在产品的选择和比较上,大家还会比较多的应用SPECjbb2000。什么是SPECjbb2000,这指标和TPC-C非常像,重要的组成是用了Java对象取代了数据库中的表,用Java对象取代了数据库中的记录。反映实际应用SPECjbb2000主要关心的是第二层业务逻辑的处理能力,后台数据库层参考TPC-C指标,中间层在运行中间件的应用服务期,参考SPECjbb2000比较有意义的。另外SPECjbb影响关键测试的重要指数就是JVM,Java虚拟机性能怎么样?对测试结果影响非常大。如果采用同样的服务器,采用不同的JVM的版本,比如一个是采用JVM5.0,一个是JVM6.0,他们产生的测试值差别非常大。右边图是代表测试的逻辑图,这是基本的四个操作,进行更新创造和删除等等,它和TPC-C主要不同是用Java运行的特殊指标。
这张图上说了一些主要的SPECjbb测试值结果,包括POWER5 595,HP Superdeme,相对在TPC-C测试指标比较少看到SUN,但是Java和SPECjbb里面SUN还是比较愿意参加的。红颜色是IBM的测试值,在测试指标里同级系统比较,IBM POWER5服务器取得的性能非常出色的,虽然没有TPC-C那么好,如果看TPC-C,POWER5可能相当于HP 安腾2的3-4倍,在里面一颗POWER5的CPU相当于相当于HP或SUN两颗CPU的水平,这不光要有好的CPU,还要使CPU与系统有好的配合。由于SPECjbb对I/O的贡献,这和TPC-C测试有所不同。
去年SPEC推出一个新的指标SPECjbb2005,可以运行多个JVM,以前测试指标里面只能有一个JVM,现在在同一个操作系统可以由多个JVM,另外把系统测试中垃圾收集过程拿掉,在考Java应用,会给JVM开辟一个区域,它自己收集自己的数据,积攒到一定程度需要把这些空间清理,这对于Java运行的模式非常重要的,但是在SPECjbb2005把垃圾收集忽略掉。所以在这里面一个是多个界面,一个是出现垃圾收集的情况。在SPECjbb2005目前还没有看到HP提交相关的测试,主要是SUN和IBM的测试,这里拿出两对测试指标,一个是E6900和570对比,还有一个6900和560Q的对比,Q是采用最新的QCM技术,有很好的CPU密度和优秀的性价比,16内核560Q和32内核的6900性能相对接近。而在16内核570对48内核6900跑出来数字有相对接近。
刚才谈到包括TPC-C和SPECjbb都叫基准测试,可能不会用到这样的应用,但是它是第三方组织开发出来的模拟情况,接下来是ERP的Benchmarks,确实有很多用户就在用这样的应用,这应用和现实的情况更贴近,对于ERP来讲也有两种模型,包括前端的展现层,后面有Web服务器,应用服务器和后台的资源。对于大的ERP类型提供两种不同的测试指标,包括两层的测试,前面的应用直接访问后面的应用和数据库服务器,可能大部分比较多的企业是两层的架构,在PC客户端上面装一个应用,然后通过PC直接登录到后台的数据库和应用服务器上面进行ERP的操作。另外是三层在客户端和数据库服务器之间,加上一个Application服务器,提供两种不同测试应用的模型。
这是两层的测试架构的测试结果,根据Users/core排序,排名第一是2.3GHz的IBM p5 595,64CPU无带来并发用户数,它和TPC-C比较像,考核是对并发用户支持有相应时间的要求。一个p5加支撑的用户366个,和竞争友商相比,所以按照竞争力排序,IBM p5可以做到其他竞争友商的两倍。还有一个三层的测试值。595采用32个处理器,从这里面可以看出如果采用三层架构,IBM测试优势会更明显,32个处理器所获得的用户值是16万,HP用了64颗CPU只达到了10万,用了不到一半CPU数量,取得的性能值是超过68%,这每颗芯片的处理优势能力表现更明显一些。
我们除了有基准测试,ISV测试,还可以参考第三方的咨询报告,现在面临的困难是没有办法找到所有的测试,这测试可能提供一部分产品的测试报告,因为不是每个厂商都会把各个产品拿出测试,我们在TPC-C网站上可能找到IBM和HP的数值,但是找不到SUN的数值。我们看到一些第三方咨询公司可以提供这样的服务,根据他们自己设计的模型可以提供各个厂商不同时期的产品,各个不同配置下的性能表现。引用了ideas公司,它涵盖了FSC、HP、IBM、Sun各个不同的指标,以及不同时期的产品,同时也可以提供基于Windows系统的性能值,设计两个性能的标准,一个是RPE,相对的性能指标,RPE设计的模型是基于TPC-C的,这种指标和TPC-C有一定的关系。RPE2选了五个比较典型的指标,包括SPECrateint、SPECratefp,各取20%加权值得到的结果。RPE可以理解考察OLTP的指标,RPE2是一个数学上的结果,不说明任何一个应用。对于用户来讲这个报告的重要性是,如果客户有各个厂商的产品,可能有几台Sun的设备,几台HP的产品,还有几个IBM服务器,如果现在实现数据的整合,实现应用的整合,希望用几台比较大服务器来整合原来比较旧的服务器的应用,这个报告可以提供给您所有产品不同配置的情况下,性能的估测值,您可以以此为依据,看需要多大规模的服务器来整合现在的服务器,这是一个比较重要的应用,包括在服务器选型,进行服务器厂家对比的时候,我们看到其他的测试值,基本上只有某些机型,而且这些机型最大的配置,为什么我们买中间的配置,有一半CPU数的性能值是多少,这可以做一个参考。
最后IBM提供一个rPerf,这是IBM内部的值,但是会公开的,会挂在IBM的网站上,如果大家感兴趣可以下载这个报告,它的设计是以p640 B80的值定为1,然后把其他产品的性能和这个产品对比得出的数值。这对性能预测主要基于商业的应用,可能不能说明高性能计算的情况,它可以模拟CPU,缓存,是不涉及到I/O的,对于客户来讲,比如595的64位配置是400万TPC-C,如果想推测比较小配置的能力,可以通过rPerf指导这样一个关系,可以在知道其他配置的情况下,了解是多少。同时竞争友商也会谈到他们内部的测试值,现在没有在其他几个友商的网站上可以找到公开发布的内部测试值,相对来讲内部测试值有意义的,关键要了解它的真实性,比如rPerf是公布在网上的,我们可以对讲相对指标是多少。有竞争友商也会用内部指标提供用户,但是很重要的工作要考察它的真实性。
今天跟大家介绍了几个不同类型的指标,希望大家通过不同的测试指标有更多的了解,谢谢大家!