TPC基准程序 及tpmc值

        今天的用户在选用平台时面对的是一个缤纷繁杂的世界。用户希望有一 种度量标准,能够量化计算机系统的性能,以此作为选型的依据。作者曾在美国从 事过数年计算机性能评价工作,深深体会到,计算机的性能很难用一两种度量来 评价,而且,任何度量都有其优缺点,尤其是当使用者对性能度量了解不深时,很 容易被引入一些误区,甚至推演出错误的结论。本文以tpc基准程序为例,给出一 些实际建议,以帮助用户避免进入这些误区。

  一、什么是tpc和tpmc?

  tpmc值在国内外被广 泛用于衡量计算机系统的事务处理能力。但究竟什么是tpmc值呢?作者曾向一些 用户、推销人员乃至某些国外大公司的技术人员问过这个问题,但回答的精确度 与tpmc值的流行程度远非相称。tpmc这一度量也常被误写为tpm或tpmc。

  1、tpc

  tpc(transactionprocessing performancecouncil,事务处理性能委员会)是由数10家会员公司创建的非盈 利组织,总部设在美国。该组织对全世界开放,但迄今为止,绝大多数会员都是美、 日、西欧的大公司。tpc的成员主要是计算机软硬件厂家,而非计算机用户,它的功 能是制定商务应用基准程序(benchmark)的标准规范、性能和价格度量,并管理测 试结果的发布。
  tpc的出版物是开放 的,可以通过网络获取。tpc不给出基准程序的代码,而只 给出基准程序的标准规范(standardspecification)。任何厂家或其它测试者都 可以根据规范,最优地构造出自己的系统(测试平台和测试程序)。为保证测试结 果的客观性,被测试者(通常是厂家)必须提交给tpc一套完整的报告(fulldisclosure report),包括被测系统的详细配置、分类价格和包含五年维护费用在内的总价 格。该报告必须由tpc授权的审核员核实(tpc本身并不做审计)。现在全球只有几 个审核员,全部在美国。

  2、tpmc

  tpc已经推出了四套 基准程序,被称为tpc-a、tpc-b、tpc-c和tpc-d。其中a和b已经过时,不再使 用了。tpc-c是在线事务处理(oltp)的基准程序,tpc-d是决策支持(decisionsupport) 的基准程序。tpc即将推出tpc-e,作为大型企业(enterprise)信息服务的基准程 序。
  tpc-c模拟一个批发 商的货物管理环境。该批发公司有n个仓库,每个仓库供应10个地区,其中每个地 区为3000名顾客服务。在每个仓库中有10个终端,每一个终端用于一个地区。在运 行时,10×n个终端操作员向公司的数据库发出5类请求。由于一个仓库中不可能 存储公司所有的货物,有一些请求必须发往其它仓库,因此,数据库在逻辑上是 分布的。n是一个可变参数,测试者可以随意改变n,以获得最佳测试效果。
  tpc-c使用三种性能 和价格度量,其中性能由tpc-c吞吐率衡量,单位是tpmc。tpm是transactionsper minute的简称;c指tpc中的c基准程序。它的定义是每分钟内系统处理的新订单 个数。要注意的是,在处理新订单的同时,系统还要按表1的要求处理其它4类事务 请求。从表1可以看出,新订单请求不可能超出全部事务请求的45%,因此,当一个 系统的性能为1000tpmc时,它每分钟实际处理的请求数是2000多个。价格是指系 统的总价格,单位是美元,而价格性能比则定义为总价格÷性能,单位是$/tpmc。

  二、如何衡量计算机系统的性能和价格

  在系统选型时,我们一 定不要忘记我们是为特定用户环境中的特定应用选择系统。切忌为了“与国际接 轨”而盲目套用“国际通用”的东西。在性能评价领域,越是通用的度量常常越是不 准确的。据我所知,美国的一些大用户从不相信任何“国际通用”的度量,而是花相 当精力,比如预算的5%,使用自己的应用来测试系统,决定选型。在使用任何一种 性能和价格度量时,一定要弄明白该度量的定义,以及它是在什么系统配置和运 行环境下得到的,如何解释它的意义等。下面我们由好到差讨论三种方式。

  1、在真实环境中运行实际应用

  最理想的方式是搞一 个试点,要求制造商或系统集成商配合将系统(含平台、软件和操作流程)在一个 实际用户点真正试运行一段时间。这样,用户不仅能看到实际性能,也能观察到系 统是否稳定可靠、使用是否方便、服务是否周到、配置是否足够、全部价格是否合 理。如果一个部门需要购买一批同类的系统,这种方式应列为首选,因为它不仅最 精确、稳妥,也常常最有效率,用户还可先租一套系统作为试点。用这种方式得到 的度量值常常具有很明确和实际的含义。

  2、使用用户定义的基准程序

  如果由于某种原因第 一种方式不可行,用户可以定义一组含有自己实际应用环境特征的应用基准程序。 我举两个例子:近年来,由于r/3软件是应用层软件,sap公司的基准程序获得了越 来越多国外企业的认可;中国税务总局最近也开发了自己的基准程序,以帮助税 务系统进行计算机选型。这种方式在中国尤其重要,因为中国的信息系统有其特 殊性。

  3、使用通用基准程序

  如果第1种和第2种方 式都不行,则使用如tpc-c之类的通用基准程序,这是不得已的一种近似方法。因 此,tpmc值只能用作参考。我们应当注意以下几点:

  (1)实际应用是否与基准程序相符

  绝大多数基准程序都 是在美国制订的,而中国的企事业单位与美国的运作方式常常不一样(恐怕也不 应该或不可能一样)。在使用tpc-c时,我们应该清楚地知道:我的应用是否符合 批发商模式?事务请求是否与表1近似?对响应时间的要求是否满足表1?如果都不 是,则tpmc值的参考价值就不太大了。

  (2)tpc度量的解释

  tpc基准程序是用来 测系统而不是测主机的,厂家肯定要充分优化他们的被测系统。此处的“系统”包 括主机、外设(如硬盘或raid)、主机端操作系统、数据库软件、客户端计算机及其 操作系统、数据库软件和网络连接等。在很多厂家的tpc测试系统中,主机的价格 只是系统总价格的1/4或更小,而硬盘的价格有可能占到总价格的1/3以上,因为tpc -c要求被测系统必须保存180天的事务记录。如果同样的主机被用到用户的环境 中,厂家报的tpmc值就意义不大,因为用户的实际系统与厂家原来用于tpc测试 的系统大不一样。当同样的主机用在不同的系统中时,tpmc值可能有相当大的变 化,现在很多用户还没有意识到这一点。
  我举一个例子。假设用 户希望购买一批同类系统,每一系统至少需要1gb的内存和50gb的硬盘。厂家a、b、c 各报了三个价格相当的系统,tpmc值分别为3000、2800、2600。用户是否应该选厂 家a的产品呢?答案是:不一定。厂家用于测试tpmc值的系统与实际提供给用户的 系统配置大不一样。tpmc最低的厂家c提供给用户的系统反而有可能性能最好,不 论是以实际系统的tpmc值还是以用户的实际应用性能来衡量。

  (3)tpc测试的成本

  tpc-c和tpc-d都是 很复杂的基准程序,做一个严格的测试是很消耗资源的,厂家当然不会说出他们 花费了多少钱和时间。但据国外知情人士透露,一个厂家做第一个tpc-c测试需 要几十万到上百万美元的资金和半年左右的时间投入。因此,很多tpc的度量值都 是估计的。由于计算机系统换代频繁,如果用户一定要用通过审核的度量值,就必 须多等待半年时间,因此而不能用最先进的系统。中国的厂家通过审核的时间则 更长。

  综上所述,我们对中国用户(尤其是大用户)在计算机系统的选型方面有如下建议:

  最好建立一个真实的试点,因为实际应用环境是检验计算机系统的最好标准。

  中国的行业应该建立符合自己实际应用的基准程序和测试标准。中国税务总局的做法值得提倡。国家有关部门应该建立独立的测试中心,制定跨行业、符合中国企事业运作模式的性能测试标准。

  “国际通用”的度量可以作为参考值,而不应作为必要条件。尤其是一定要弄清这些流行度量有什么含义,是在什么样的系统环境中测得的,以及基准程序是否符合企业真实的业务流程和运作模式。