当前位置:首页 > 演讲稿 > 【选型需要科学依据】滴血认亲有科学依据吗
 

【选型需要科学依据】滴血认亲有科学依据吗

发布时间:2019-03-12 03:50:56 影响了:

  软硬件系统的选型不能靠“拍脑袋”来决定,需要有科学的依据和标准。计算机系统性能评测正是通过评测程序来获得计算机系统在运行任务时的性能特征,为系统选型提供理论依据的。   “我们究竟需要什么?”这个问题经常徘徊于各企业信息系统负责人和CIO的脑海中。选用PC服务器还是小型机,多大的内存,几路CPU,何种架构的硬件,何种软件系统,应该升级硬件还是重新购置新的设备。我们处在一个选择的漩涡,这些选择直接关系到企业的投资以及未来对投资的保护。似乎我们更依赖于传统经验或者“专家”的推荐,到底有没有科学的标准呢?答案是肯定的。
  为了科学选型,我们需要对计算机系统进行性能评测。所谓计算机系统性能评测就是通过评测程序来获得计算机系统在运行任务时的性能特征,为系统选型提供理论依据,有利于保护投资。计算机系统性能评测就是通过评测程序获得特定计算机系统运行预先定义任务或任务集时的性能特征,其结果也被用于预测新系统的性能。通过研究和分析表明,一个优秀的性能评测程序必须满足以下条件:应该真实代表现实世界的应用、不应该排斥某种结构或配置的系统,结果应该被规约为单一值,在不同档次的计算机系统上都应当获得满意的结果,应该有详细的运行条件和步骤结果可以被重现,应该可以用简单的方法验证结果的正确性,使用的算法应该足够简单。
  
  数据库应用评测程序
  
  随着联机事务处理(OLTP)、数据仓库(Data Warehouse)、知识挖掘(Data Mining)以及决策支持(Decision Support)等应用在各行业应用日趋推广,以及各种数据的快速增长,数据库变得越来越重要,在日常项目选型中迫切需要有相关理论支持。为了对已部署的数据库进行合理升级,保护现有投资,数据库系统的评测就显得尤为重要,各国际权威组织都提出各种数据库评测系统。
  
  ● 001基准
  001基准通常也被称为Sun基准,是第一个预测数据库在工程应用方面性能的标准基准,也是一个事实上的对象数据库基准。它的描述是基于一个在Sun实现的“简单数据库操作基准”的设计经历。基准的数据库包含许多零件(part)对象和它们之间的连接。每个零件包含5个属性:id、类型、 x和y的坐标对和一个构造日期。每一个零件还有三个出去的连接和许多接入连接。每个连接有一个类型和长度。运行的数据库大小有两种:一种是20000零件,用于测试驻留内存的应用性能;另一种是包含200000(或更多)零件,用于测试数据量超过物理内存大小的应用。001基准设计有三种操作:“查找”(lookup),利用id查找1000个随机的零件;“对象图的遍历”(traversal),随机选择一个部件,完成一个深度优先的7层遍历;“插入”(insert),增加100新的零件到数据库中。每个操作重复执行10次。001基准和 HyperModel代表了OODB(面向对象数据库)基准方面的成果。但都没有足够全面地测试OODB的特点和性能问题来评测OODB的产品,例如没有测试复杂对象、密集遍历、涉及更新的遍历。
  
  ● 007基准
  007基准是由Wisconsin大学数据库组织开发的全面测试对象数据库性能的基准。它主要测试不同类型指针遍历的速度,包括遍历缓冲区中的数据、驻留磁盘的数据、零星遍历和数据密集的遍历。不同类型更新的效率,包括有索引和无索引的数据库对象域、重复更新、更新缓冲区数据、建立和删除对象、查询处理器执行各种不同查询语句的性能。007基准测试产生一组数而不是一个值。基准产生一个性能值,容易记忆和用来比较各种系统。但是,返回一组值就更容易给用户更多的性能信息。
  它测试的数据库大小分为大、中、小三种。它的参数设计如表1所示。
  007基准的数据库的主要部件是组合零件。它们组成了基准的设计库(Design Library),每一个模型中包含的组合零件的数目有参数NumCompPerModule决定。每一个组合零件有许多属性,包括id、类型和构造日期等。一个文本对象和每个组合零件连接,它包含着整数id、字符类型的题目和字符串类型的文本内容。字符串的长度有参数DocumentSize决定。文本对象和组合零件有一个双向的联系连接。每一个组合零件还包括一个构成它的那些原子零件(atomic parts)的组合图。其中,一个原子零件被作为根零件。每一个原子零件包含有下列属性:id、构造日期、x、y、docID和类型。每一个原子零件和通过双向的联系连接到几个其他的原子零件上。每对原子零件之间的连接是通过在原子零件之间插入一个连接对象实现的,连接对象包含有长度和类型两个属性。 为了支持对象操作,基准数据库还包括装配层次(assembly hierarchy),每一个称为一个模块,是数据库应用的最大子单元的模型。每个装配层次通常有7层,具体由参数NumAssmLevels决定。装配层次的低层包含元装配对象,包含有id、类型构造日期等属性。较高的层次都是由复杂装配组成的。每个复杂装配包含有与三个子装配的双向联系。基准执行若干遍历、查询和结构更新操作,并记录各自的执行时间。007基准报告中测试了四个OODB数据库系统、Exodus、Objy/DEC ODB、Ontos和Versant,并给出了针对每种操作的详细测试结果。
  
  ● AS3AP基准
  AS3AP (Ansi SQL Standard Scalable Portable Benchmark) 是一个关系数据库基准,它提供了全面且易测试数据库性能的测试集,它可扩展可移植,可测试一个相当大范围内的数据库集,运行方便,并且它提供一个统一的度量,数据库等价率。数据库在处理能力、性能和花费等方面都存在差异,它针对过去的基准不能提供统一、全面的度量,在实现上做到了可扩展,可移植和简单。提供的测试包对执行语句、执行时间和顺序都进行了详细地定义。AS3AP测试分为两大部分,单用户测试和多用户测试。为了处理的方便,测试时间定为12小时,没有考虑时间。测试时,用DBGEN应用程序生成四个字符数据文件,将这些文件内容装入数据库,记录装入时间。AS3AP数据库包含5个关系表,其中一个表一行一列,用来记录测试开支。其它四个表有着同样的结构(属性名、属性类型),通过生成文件装入的数据生成,它们的区分表现在某一列上有不同值的行数。每行记录的长度大约是100字节,整个数据库的大小大约是:每个关系表的记录数×100字节/记录×4个关系表,结果的度量是等价数据库率,即两个等价数据库大小的比值。等价数据库大小是,系统在12个小时内,能完成的指定的单用户和多用户测试集时,数据库大小的最大值。与性能有关的两个相互冲突的因素是装入时间和数据库大小。为了得到较小的响应时间,数据库就应当尽量的小;另一方面,为了与其他数据库系统比较,就需要较大的数据库系统。单用户测试包括操作功能(如数据装入、数据备份)和一批查询和更新语句。多用户测试时,为了使结果有意义,对用户数进行了定义,即用户数=逻辑数据库大小/4M, 多用户测试混合数据负载,包括OLTP测试、IR信息检索测试、混合IR测试和混合在线事务处理测试。AS3AP缺点是多用户测试运行困难。
  
  ● Set Benmark 基准
  在Set Benmark 基准的发展初期,DebitCredit 和TPC对OLTP应用中单记录更新事务评价做了完善的说明,但是它对于信息系统和决策支持系统是不合适的。在这些应用中用到更多的查询,特别是集合查询,也就是在一次事务处理中要连接几个表和取出一组数据分析。在这方面应用中,查询占用的计算机资源相对多,各种数据库系统的性能是不同的。Set Query 基准就是被用来测试这方面应用的系统的。
  它具有可移植、平台广、功能全、选择灵活、可扩展性等特点。例如一个表BENCH,n×1000000行,每行200字节。为了有多种快速的选择方式,BENCH表有13个索引列(kseq、k500k、k250k、k100k、k40k、k10k、k1k、k100、k25、k10、k5、k4、k2)和8个字符列。每一列含有的不同值的数目是n×列名中指明的数值。这样可以方便地选出不同数目的测试集。
  功能覆盖范围包括:文档检索,用户指定几个属性用来检索一些记录集,并利用count函数统计记录数,并返回给用户;市场预测,根据用户信息,帮助商家决定用户最想购买或感兴趣的产品,基准中设计sum操作的语句测试这方面的功能;决策支持,通过分析现有数据,找出可能的内在联系,基准中通过变化的count函数,以及group by 语句的结合,测试这方面的功能。
  它的统计结果,是需要一个性能价格比,即每秒查询数中,单个查询执行的价位(P$/QPS)。 在整个基准测试中一共执行69个查询功能语句,假定总的执行时间是S秒,则每秒中执行69/S查询。假设系统(软件和硬件)总的花费是P$, 所以
  $PRICE/QPS= P*S/69
  Set测试的缺点是有些事务响应时间长,选择一个可接受的标准困难。开始仅针对单用户。
  
  ● TPC-C基准
  TPC-C 3.5由一组基本操作组成,用以测试典型的联机事务处理(OLTP)系统性能。TPC-C中虚拟的公司是一家仓库销售供应商,它拥有一批分布在不同地方的仓库和地区分公司。当公司业务扩大时,将建立新的仓库和地区分公司。通常每个仓库供货覆盖10家地区分公司,每个地区分公司服务3000名客户。公司共有10万种商品,分别储存在各个仓库中。图1描述了仓库、地区分公司、客户的隶属关系。
  TPC-C数据库由9个描述上述实体的独立表组成。图2表示了表间的关系。实体块中的数字表示表的基数(行数)。这些数字以仓库数W为因数,决定数据库的缩放能力。基准中系统功能包括:客户向公司下订单、查询订单处理情况、付款、发货和库存潜在提示等五种事务。订单平均由10行订货记录组成,订单中1%的商品由于当地仓库缺货,由其他仓库供货。并且,基准模仿实际应用,详细定义了各种事务的执行比例,输入数据键入时间和返回结果后的考虑时间。并且要求对测试系统的原子性、一致性、隔离性和持久性进行检查,确保它们能满足这些性质。并给出了符合要求事务的90%响应时间的最大值。
  如果公开TPC-C结果,测试者必须提供一份全部公开的报告,报告需要公开详细的体系结构信息以及性能和成本指标。总的系统成本包括所有软硬件成本、180天运行和5年维护在线数据存储器所需的成本。
  TPC-C使用两种度量结果综合给出对系统的评价。其中性能由TPC-C吞吐率衡量,单位是tpmC,它的定义是每分钟内系统处理的新订单个数。要注意的是,在处理新订单的同时,系统还要按一定的比例的要求处理其他4类事务请求。从比例结构可知,新订单请求不可能超出全部事务请求的45%。价格性能比则定义为:总成本价格/吞吐率,单位是$/tpmC。
  TPC-C由于其完整性和科学性,成为现在流行的事实上的数据库OLTP事务基准,但它是面向一些大企业的,单个用户很难实现。此外企业做TPC-C测试的产品与用户购买的产品总是存在着差异。
  
  Web性能评测程序
  
  随着Web系统在大型项目的应用越来越广泛,针对Web系统本身的性能评测依据也日趋成为热点。
  
  ● WebStone
  30年前,人们要想获得网络资源必须懂得相当数量的Unix命令,并需了解网络原理。HTTP协议的出现使得用户能够通过GUI方便地浏览网络资源,这使得网络突飞猛进地发展起来,HTTP服务器的数目也与日俱增。为了评测各种HTTP服务器的性能,SGI于1995年3月提出了采用C/S结构的WebStone。评测程序向服务器发送HTTP /1.0 GET请求,验证返回结果,评测得到系统的吞吐量和延迟。
  WebStone的结构如图3所示。WebMaster控制着所有WebChildren的行为,WebChildren通过指定的网络和HTTP服务器相连。可以看出,WebStone 是一个分布式、多进程的评测程序。WebMaster进程读取配置文件和命令参数,然后向WebChildren发出命令。每个WebChildren根据命令中的参数进行HTTP性能评测。完毕后由WebMaste 搜集所有WebChildren的运行信息并给出统计结果。在评测过程中,WebChildren之间相互独立,也不和WebMaster交互。图4显示了其运行情况。WebChildren尽可能向服务器发送页面请求,反映了服务器的峰值性能。 很显然,WebStone的负载依赖于WebChildren的数目,页面类型以及数量。在WebStone中,文件集中有多个“页面”组成,每个“页面”包含多个文件,代表了网络页面可能含有的图像、动画和声音。每个页面有各自的权重来指示被访问的几率。
  评测完成后,获得系统的吞吐量和请求延迟(完成一个请求所花费的时间),还给出服务器处理的平均连接数,这个值应该接近客户端的数目,否自表示有相当数目的连接请求被拒绝。
  WebStone存在的问题是目前只能处理HTTP/1.0 的GET操作,不支持POST操作,也不支持Cookie, 应用范围有一定的限制。
  
  ● SPECweb99
  SPECweb99是SPECweb96的更新,是一个客观的有代表性的测量Web服务器性能的基准。它是对SPECweb96的重新设计,支持HTTP1.1和HTTP1.0。
  它测试在一定负载下,满足数据传送率在320kbps和400kbps之间的最大并发连接数。运行时,它通过一个一台主机控制执行的配制参数和客户机的同步。静态负载文件集包含多个目录,每个目录包含36个文件,分为四类,每类9个,这四类文件的权重是不同的,每类文件中的各个文件的选中是服从Zipf分布的。
  动态负载是基于相关的Web商业应用的,包括四类动态内容,分别是标准动态GET、动态POST、CGI动态GET和有广告旋转的动态GET, 对它们的权重也进行了规定。由于它定义明确简单,实现容易,已经被很多Web服务器厂商接受和利用。
  
  ● TPC-W基准(Web商务)
  TPC Benchmark W (TPC-W)发布于1998年,是一个通过Web事务基准。现在的版本是TPC-W 1.1。它的负载是在电子商务环境内,模拟面向事务的Web服务器的商业活动。这个基准塑造的应用是因特网上的一个零售商店,顾客可以浏览,查找和订货。
  它的数据库部件包括至少8个单个的表,它们的大小关系如表2所示。数据库的大小作为性能度量的一部分,它的基数是用item表的行数(商品的种类)来表示的,标在度量结果的后面。
  TPC-W1.1定义了两大类共14种Web交互操作,它们之间变化的比例关系决定了交互行为的主要目的:浏览、检索还是定单。而且这14种交互活动的90%响应时间的最大值也有具体的定义。例如90%的主页交互必须在3秒内完成。
  两个主要的TPC-W度量分别是WIPS (每秒Web交互请求完成数)和$/WIPS(测试下的系统总成本除以WIPS)。
  在一些Web购物应用中,主要目的是引起用户的兴趣,让用户浏览,而在另一些应用中,主要目的是让用户购买,提交请求,所以,还提供了两种度量WIPSb和WIPSo,分别表示在浏览测试间隔和订单测试间隔中每秒的Web交互数。TPC-W基准的优点是系统、全面、数值无歧义,并能测试出系统的性能,但是实现困难。尽管TPC提供了数据和页面的生成程序,但是客户端的应用仍需要用户编写。而且由于Web交互事务的变化大,请求有动态、静态、GET、 POST之分,所以TPC-W基准将有可能继续改进,以便更全面准确地反映因特网上的商业活动。
  
  计算性能评测程序
  
  计算性能是计算机性能的重要部分,有很多评测程序就是为了评测系统浮点、定点运算性能而设计的。
  
  ● Linpack
  Linpack是最早的评测系统浮点运算能力的程序之一。主要功能是求解线性方程组和最小二乘问题。对参数矩阵,Linpack使用面向列的算法来提高Cache命中率,最早的Linpack采用矩阵大小为 100×100, 后来有300×300及1000×1000的版本问世。
  Linpack的问题在于仅评测了系统的一种计算模式,很容易量化,在向量机上能获得较优的性能。
  
  ● HINT 评测程序
  在过去的10年中,计算机硬件性能以每年70%的速度递增。性能评测程序很容易在硬件性能的快速增长下失去作用。例如:Linpack在产生之初,求解含100个未知数的线性方程组还被认为对当时的计算机是一个挑战。因为求解需要“高达”40KB的内存和670K次的浮点运算。但是很快问题在VAX-11/780型计算机仅需几秒钟就能得到结果,到了后来,CRAY-MP8/832机上运行该评测的时间少于1/300秒,因此远不能正确反映系统的性能。针对这种情况,Amens实验室首先提出了可扩展的评测程序HINT (Hierarchical INTegration)。结果采用QUIPS (Quality Improvement Per Second) 表示。其评测法是使用二分法得到方程y=(1-x)/(1+x)在[0,1]区间上和坐标轴围成区域的面积。通过得到在区域内所有矩形(下界)和包含该区域全部矩形(上界)的面积的方法来逼近。目标就是在最短的时间内找出该面积最高精度的值。使用Quality来代表上界和下界的差值的倒数,运行一分钟后得到Quality每秒增加的幅度。
  HINT的优点在于它是一个可以扩展的、固定运行时间的评测程序;能够适用于各种规模的机器,能很好地并行化。缺点在于仅仅代表了一个方面的应用,不能全面反映系统的性能,而且程序代码量很小,能够被Cache完全容纳。
  
  其他评测程序
  
  ● 操作系统评测程序 Lmbench
  1995年以前,只有Ousterhout开发的程序包能够评测操作系统的性能。该程序包独立了一系列OS-Kernel原语,能得到原语的部分性能。但结果非常粗略,不能通过它获得硬件的性能特征。
  1995年,McVoy发布了专门进行操作系统性能评测的软件包Lmbench。它提供一些精干的小程序来评测系统硬件和OS原语的性能。Lmbench把操作系统分解位于硬件性能密切相关的原语,针对每个原语进行详细评测,结果反映了操作系统与硬件设备的关系。
  Lmbench的评测内容主要分三类:评测各种带宽、各种延迟和其他评测。
  评测带宽的子程序包括:缓存(Cache)文件的读带宽、内存拷贝操作(bcopy)的带宽、内存的读写带宽、管道的读写带宽、TCP的读写带宽、磁盘的读写带宽。
  评测延迟的子程序是:进程上下文切换延迟;TCP、RPC、PIPE连接建立延迟;文件系统建立、删除文件延迟;采用fork()、fork()+exec()、system()三种方式创建进程的延迟;信号建立和处理的延迟;系统调用延迟;内存访问延迟。
  
  ● 工程数据库基准EDB
  性能是工程应用(如CAD)中一个非常重要的因素。因为传统的数据库要比专门为工程方面设计的数据库慢10到100倍, 所以传统的数据库基准象TPC-C、 Wisconsin 等并不适合测量工程应用中的数据库系统性能。所以工程数据库基准(Engineering Database Benchmark)产生了。
  由于各种工程的需求变化大,负载不全相同,测量工程数据库性能是困难的。但是各种工程有着相似的数据访问层,都利用了高阶语言灵活性和SQL语言的结合完成操作,所以工程数据库都要提供对高阶语言的支持或提供象高阶语言编程灵活性一样的功能。EBD在测量性能时也注重了这些方面。
  EDB基准数据库是独立于DBMS数据模型的,也就是说,它定义的两个逻辑记录类型part 和connection是一种存储信息的逻辑定义,存储可以是对象数据库中的对象,也可以是关系数据库中的表。
  由于工程中经常是应用在工作站中,数据在服务器中,所以远程数据访问是更重要的。EDB要求通过网络的远程数据访问和本地数据访问的性能结果都被测试。
  一是测量,EDB测量一个用户的响应时间。EDB运行一个包括一个可扩展的数据库和三个工程中有代表性的操作,每个运行10次。一个操作是查询(Lookup),生成1000个随机数据为part中的主键值,查询数据库找出它们的信息, 用宿主程序语言返回。
  另一个是搜索(Traversal),找出与一个part信息联系的所有其他的part记录信息,利用水平优先搜索。
  最后一个操作是插入(Insert), 插入100个part和每一个 part随机的3个connection记录信息并用宿主语言返回信息。
  值得注意的是,数据库服务器一定不能和用户位于一台机器上,访问要通过网络。
  

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3