[PT_02] 性能测试-性能指标的分析 & 定义

[PT_02] 性能测试-性能指标的分析 & 定义,第1张

目录结构

通过前文 性能测试需求分析 对性能测试的必要性评估之后,敏捷开发团队确定利用开源工具JMeter实施性能测试工作。根据被测对象的应用特性,首先需要获取 具体的性能测试需求

对于相对规范的产品,产品团队一般会给出相对明确量化的性能测试要求,如下表所示:

可以看出,上表给出的性能指标比较明确。性能测试活动实施过程中,测试工程师只需收集随机购买商品的 [ 响应时间、访问成功率、并发数、CPU使用率、内存使用率 ] 等相关指标的监测数据,与表中的量化指标比对即可。满足相关指标,则测试通过;若未满足,则需要进行问题分析定位,最终进行调优与回归,直至达到性能测试需求。

以本次项目为例,产品团队并未指明性能测试需求,那么测试工程师如何分析提取量化的性能指标呢?

从用户应用角度考虑,若被测对象 常用的业务 的性能存在瓶颈,则很可能引起客户的反感。以登录功能为例,输入用户名和密码,点击登录按钮到显示成功登录信息,若耗时1min,用户绝对无法忍受。用户 不常用的功能 ,如年度报表汇总功能,一个季度甚至是一年才使用一次,等几分钟or更长时间也有可能被接受。

So,不同的应用频率,决定了用户的使用感受,也决定了测试的需求。

针对本次ECShop电商系统而言,商城用户经常使用的功能,且存在大量用户使用的业务有:用户注册、登录、随机浏览商品、购买业务等,而其他功能则相对用户较少。若电商系统已经正式运营,则可从系统 运营日志 中分析具体的数据。若尚未上线运营,则需要 调研用户 or根据 自身经验 进行分析获取。

根据 [JPT_01]性能测试需求分析 中的描述,分析哪些是用户常用or交易占比超过80%的业务;从运营及项目组角度分析,哪些业务相对重要,然后确定为 业务测试点

综合分析,本次项目实践以 用户登录、随机浏览并购买商品 为测试点。确定业务测试点后,即可进行详细的业务需求分析,从而明确性能测试指标。

不同的被测对象,不同的业务需求,可能有不同的指标需求,但大多数测试需求中都包含以下几种性能指标:

目前,大多数软件系统客户端与服务器交互的过程,如下:

因此,不同的视角,衡量的响应时间指标也各不相同。实际测试过程中,需明确以什么视角验证被测对象的性能。

大多数情况下,性能测试响应时间主要以客户端发出请求,直至接收到服务端的响应数据过程中所消耗的时间作为参考。

严格来讲: 响应时间=呈现时间+网络传输时间+服务器端响应时间+应用延时时间

Tips:

不建议尝试在公网进行性能测试,原因如下:

可能影响现网用户 。实施性能测试过程中,可能产生大量压力与垃圾数据,从而破坏生产环境,导致缺陷的产生,影响实际的业务。

压力模拟可能无法体现真实场景 。实施性能测试时,利用压测工具模拟大并发数,会产生大量业务数据。因负载生成器与服务器所在的网络不同,or服务器特定的网络安全设置,导致压力数据无法达到被测服务器,整个网络环境不可控,从而导致测试失败。

有一种情况除外,模拟固定带宽网络访问的场景,可在局域网中使用限制带宽的手段进行测试。

总之,需要遵循一个原则: 在测试过程中,任何资源都必须可控。

衡量方式:

其中,[字节数 / 单位时间] 的计算方式,与当前的网络带宽比较,可找出网络方面的问题。

吞吐量计算:例如1分钟内系统可以处理1000次转账交易,则吞吐量为1000/60=167 (次/秒)

一个系统的高效运行,除了软件性能要求外,还需要对硬件资源进行监控。若用户需求、项目组or其他利益相关方均未提出性能指标要求,则可参考行业经验,CPU使用率≤80%、内存使用率≤80%、网络带宽占用≤50%

PS:

80%只是作为一个经验参考值,最终的性能测试指标需要经过项目相关各方评审才能确定

通过上述业务数据分析,最终得到本次项目测试的性能需求指标,如下:

例如,测试银行营业系统的并发处理性能,有100个网点,上午10:00-11:00的一个小时高峰期里,要求能支持50000笔开户业务,其中成功率不低于98%,也就是需要成功开户49000笔,其他的1000笔可能是超时,或者其他错误导致未能开户成功。

根据上述各指标,结合被测对象本身的业务情况,进行测试需求及指标分析:

通过对预设业务目标的分析,可得出以下数据:

计算业务量的分解数据:

综上,需要测试ECShop电商平台在2h内支持5w用户登录、随机浏览商品进行购买的业务。

最重要的性能指标就应该是SPEC web99。SPEC web99为Web用户提供了用于评测系统用作Web服务器能力的最客观、最具代表性的基准; 而如果是选购应用服务器,关注SPEC jbb200和SAP SD这两个指标就能知道大概其了,因为SPEC jbb200是专门用来评估服务器系统运行Java应用程序能力的基准测试,而SAP SD 的测试结果为客户提供了基本的规模建议。

人尽其才、物尽其用”。企业购买服务器当然是为满足特定需要。针对不同需求,我们要关注的性能指标也不同。举例来说,对于数据库服务器,联机事物处理能力是最需着力考察的指标。TPC-C是“事务处理性能委员会”(TPC)负责制订的基准测试指标,考察联机事务处理每分钟吞吐量。而TPC-C测试结果又包括两个指标,一个是流量指标tpmC,这个值越大越好;另一个是性价比指标Price/tpmC,指的是测试系统价格与流量指标的比值,这个值则越小越好。以IBM公司的x366为例子,根据TPC官方网站,TPC-C在线交易基准测试中,x366的流量指标达到了141504tpmC,是4路至强芯片服务器的世界纪录。

再比如说,购买Web服务器时,最重要的性能指标就应该是SPEC web99。SPEC web99为Web用户提供了用于评测系统用作Web服务器能力的最客观、最具代表性的基准; 而如果是选购应用服务器,关注SPEC jbb200和SAP SD这两个指标就能知道大概其了,因为SPEC jbb200是专门用来评估服务器系统运行Java应用程序能力的基准测试,而SAP SD 的测试结果为客户提供了基本的规模建议。

对于大多数人来说,基准测试指标是一个全新的知识空间 – 许多人在购买服务器时习惯于考虑CPU和内存,以为选定了这些,服务器的性能就差不多了。其实,不同的系统设计技术会对服务器的性能产生巨大影响,用诸多量化指标来衡量比较是十分必要和重要的。

用户都希望系统能24×7×365不停机、无故障地运行,这其实是要求服务器的可用性。而可用性和可管理性是息息相关的。服务器的故障处理技术越成熟,为用户提供的可用性就越高,而这个故障处理技术必须要有良好的管理手段和界面来及时表现:一方面可以通过出现故障时自动执行系统或部件切换以避免或减少意外停机,另一方面要让管理员及时察觉及帮助诊断,才能从根本上解决问题。目前这方面做得较好的是IBMx3架构服务器。它带有一种叫“弹出式光通路诊断面板”的技术,只要轻轻,光通路诊断面板就会以从服务器前端弹出,指示器可以帮助管理员快速地定位和替换故障组件,减少服务器的宕机时间。

以基准测试指标为基准,以理性考量为准绳,二者并行互航,您选择的服务器肯定错不了!

附表:部分服务器性能指标

应用

基准测试

简述

测试中主要考察的部件

联机事物处理

TPC-C

TPC-C是一种考察联机事务处理(OLTP)每分钟吞吐量的基准测试。TPC-C模拟的是完整的计算环境,大量用户针对数据库(如SQL、Server Oracle,DB2)执行并发事务操作。许多IT专业人员将TPC-C视为衡量“真实”OLTP系统性能的有效参考基准。

全面考察微处理器,内存子系统,磁盘子系统合一些网络组件

电子商务

SPECweb99 SPECweb99用于评测Web服务器能够支持的最大同时连接数的客户端/服务器基准测试。基准负载是由运行HTTP Server的服务器联网的客户端设备上的客户端软件来实现的。为Web用户提供用于评测系统用作Web服务器能力的最客观、最具代表性的基准。

系统的微处理器、内存体系结构和编译器

SPECjbb200 SPECjbb200(Java业务基准)是SPEC第一个用于评估服务器端Java的性能的基准,为Java用户提供用于评测服务器系统运行Java应用程序能力的最客观、最具代表性的基准

芯片组与主板即使采用相同的芯片组,不同的主板设计也会对服务器性能产生重要影响。网卡服务器应当连接在传输速率最快的端口上,并最少配置一块千兆网卡。对于某些有特殊应用的服务器(如FTP、文件服务器或视频点播服务器),还应当配置两块千兆网卡。硬盘和RAID卡硬盘的读取/写入速率决定着服务器的处理速度和响应速率。除了在入门级服务器上可采用IDE硬盘外,通常都应采用传输速率更高、扩展性更好的SCSI硬盘。对于一些不能轻易中止运行的服务器而言,还应当采用热插拔硬盘,以保证服务器的不停机维护和扩容。磁盘冗余采用两块或多块硬盘来实现磁盘阵列;网卡、电源、风扇等部件冗余可以保证部分硬件损坏之后,服务器仍然能够正常运行。热插拔是指带电进行硬盘或板卡的插拔操作,实现故障恢复和系统扩容。

当前业界常见的服务器性能指标有:

TPC-C

TPC-E

TPC-H

SPECjbb2005

SPECjEnterprise2010

SPECint2006 及 SPECint_rate_2006

SPECfp2006 及 SPECfp_rate_2006

SAP SD 2-Tier

LINPACK

RPE2

一、TPC (Transaction Processing Performance Council) 即联机交易处理性能协会, 成立于1988年的非盈利组织,各主要软硬件供应商均参与,成立目标: 为业界提供可信的数据库及交易处理基准测试结果,当前发 布主要基准测试为:

TPC-C : 数据库在线查询(OLTP)交易性能

TPC-E : 数据库在线查询(OLTP)交易性能

TPC-H : 商业智能 / 数据仓库 / 在线分析(OLAP)交易性能

1TPC-C测试内容:数据库事务处理测试, 模拟一个批发商的订单管理系统。实际衡量服务器及数据库软件处理在线查询交易处理(OLTP)的性能表现 正规 TPC-C 测试结果发布必须提供 tpmC值, 即每分钟完成多少笔 TPC-C 数据库交易 (TPC-C Transaction Per Minute), 同时要提供性价比$/tpmC。如果把 TPC-C 测试结果写成为 tpm, TPM, TPMC, TPCC 均不属正规。

2TPC-E测试内容:数据库事务处理测试,模拟一个证券交易系统。与TPC-C一样,实际衡量服务器及数据库软件处理在线查询交易处理(OLTP)的性能表现。正规TPC-E测试结果必须提供tpsE值,即每秒钟完成多少笔TPC-E数据库交易(transaction per second),同时提供$/tpsE。测试结果写成其他形式均不属正规。

对比:TPC-E测试较TPC-C测试,在测试模型搭建上增加了应用服务器层,同时增加了数据库结构的复杂性,测试成本相对降低。截止目前,TPC-E的测试结果仅公布有50种左右,且测试环境均为PC服务器和windows操作系统,并无power服务器的测试结果。除此之外,TPC官方组织并未声明TPC-E取代TPC-C,所以,说TPC-E取代TPC-C并没有根据。

众所周知,服务器是整个网络系统和计算平台的核心,许多重要的数据都保存在服务器上,很多网络服务都在服务器上运行,因此服务器性能的好坏决定了整个应用系统的性能。

 现在市面上不同品牌、不同种类的服务器有很多种,用户在选购时,怎样从纷繁的型号中选择出所需要的,适合于自己应用的服务器产品,仅仅从配置上判别是不够的,能够通过实际测试来筛选。而各种的评测软件有很多种,你应该选择哪个软件测试?下面就介绍一些较典型的测试工具:

 (一)服务器整机系统性能测试工具

 一台服务器系统的性能可以按照处理器、内存、存储、网络几部分来划分,而针对不同的应用,可能会对某些部分的性能要求高一些。

 Iometer(wwwiometerorg):存储子系统读写性能测试

 Iometer是Windows系统下对存储子系统的读写性能进行测试的软件。可以显示磁盘系统的IO能力、磁盘系统的吞吐量、CPU使用率、错误信息等。用户可以通过设置不同的测试的参数,有存取类型(如sequential ,random)、读写块大小(如64K、256K),队列深度等,来模拟实际应用的读写环境进行测试。

 Iometer作简单,可以录制测试脚本,可以准确有效的反映存储系统的读写性能,为各大服务器和存储厂商所广泛采用。

 Sisoft Sandra(wwwsisoftwarecouk):WINDOWS下基准评测

 SiSoft发行的Sandra系列测试软件是Windows系统下的基准评测软件。此软件有超过三十种以上的测试项目,能够查看系统所有配件的信息,而且能够对部分配件(如CPU、内存、硬盘等)进行打分(benchmark),并且可以与其它型号硬件的得分进行对比。另外,该软件还有系统稳定性综合测试、性能调整向导等附加功能。

 Sisoft Sandra软件在最近发布的Intel bensley平台上测试的内存带宽性能并不理想,不知道采用该软件测试的FBD内存性能是否还有参考价值,或许软件应该针对FBD内存带宽的测试项目做一个升级。

 Iozone(wwwiozoneorg):linux下I/O性能测试

 现在有很多的服务器系统都是采用linux作系统,在linux平台下测试I/O性能可以采用iozone。

 iozone是一个文件系统的benchmark工具,可以测试不同的作系统中文件系统的读写性能。可以测试Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。测试所有这些方面,生成excel文件,另外, iozone还附带了用gnuplot画图的脚本。

 该软件用在大规模机群系统上测试NFS的性能,更加具有说服力。

 Netperf(wwwnetperforg):网络性能测试

 Netperf可以测试服务器网络性能,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。

 Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是 netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。

 对于服务器系统来说,网络性能显得尤其重要,有些服务器上为了节省成本,采用了桌面级的网络芯片,性能怎样,用这个软件一测便知了。

 以上介绍的这几款测试工具都是可以免费从网上下载的非商业软件,但是其测试结果和认可程度均是为大多数使用者所认同的。你可以根据自己的应用需求选择不同的软件进行测试。

 (二)针对应用的测试工具

 随着web应用的增多,服务器应用解决方案中以Web为核心的应用也越来越多,很多公司各种应用的架构都以web应用为主。一般的web测试和以往的应用程序的测试的侧重点不完全相同,在基本功能已经通过测试后,就要进行重要的系统性能测试了。系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言包括执行效率、资源占用率、稳定性、安全性、兼容性、可靠性等等,以下重点从负载压力方面来介绍服务器系统性能的测试。系统的负载和压力需要采用负载测试工具进行,虚拟一定数量的用户来测试系统的表现,看是否满足预期的设计指标要求。负载测试的目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等如何决定系统的性能,例如稳定性和响应等。

 负载测试一般使用工具完成,有LoadRunner,Webload,QALoad等,主要的内容都是编写出测试脚本,脚本中一般包括用户常用的功能,然后运行,得出报告。

 使用压力测试工具对web服务器进行压力测试。测试可以帮助找到一些大型的问题,如死机、崩损、内存泄漏等,因为有些存在内存泄漏问题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来越多,就会导致系统崩滑。

 Loadrunner:预测系统行为和性能的负载测试工具

 目前,业界中有不少能够做性能和压力测试的工具,Mercury(美科利)Interactive公司的LoadRunner是其中的佼佼者,也已经成为了行业的规范,目前最新的版本81。

 LoadRunner 是一种预测系统行为和性能的负载测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试,LoadRunner 适用于各种体系架构,能支持广范的协议和技术(如Web、Ftp、Database等),能预测系统行为并优化系统性能。它通过模拟实际用户的作行为和实行实时性能监测,来帮助您更快的查找和发现问题。Loadrunner是一个强大有力的压力测试工具,它的脚本可以录制生成,自动关联。测试场景面向指标,实现了多方监控。而且测试结果采用图表显示,可以自由拆分组合。

 通过Loadrunner的测试结果图表对比,你可以寻找出系统瓶颈的原因,一般来说可以按照服务器硬件、网络、应用程序、作系统、中间件的顺序进行分析。

 Loadrunner是一款收费软件,根据测试项目和虚拟用户数目的不同而花费不同的费用。不过你可以下载到免费使用10天的测试版本。

 Webload:WEB性能压力测试

 webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试; webload通过模拟真实用户的作,生成压力负载来测试web的性能。

 用户创建的是基于javascript的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能。当前版本是60。webload提供巡航控制器cruise control的功能,利用巡航控制器,可以预定义web应用程序应该满足的性能指标,然后测试系统是否满足这些需求指标; cruise control能够自动把负载加到web应用程序,并将在此负荷下能够访问程序的客户数量生成报告。

 webload能够在测试会话执行期间对监测的系统性能生成实时的报告,这些测试结果通过一个易读的图形界面显示出来,并可以导出到excel和其他文件里。

 这两个软件的功能虽然强大,并且可以自动生成测试报告,但其终究是一个工具,如果你想真正的定位服务器性能的好坏和性能的瓶颈所在,需要使用工具的人对于测试软件的方方面面都要有了解,比如软件体系构架,网络拓扑,服务器硬件等知识。

1、一个50人的公司所需的服务器的配制标准,还要看你公司网络准备构建的形式,如果是采用“服务器/工作站”的形式架构,对服务器的要求并不太高,如果是采取“服务器/终端”的形式运行,则对服务器的要求更高些。

如果采取服务器/工作站的形式,每台客户端工作站都有较好配制的CPU,有硬盘,则服务器配制可以是:

CPU:1颗至强32G(2M二级缓存),内存:1G/ECC

硬盘:160G,建议选用DELL服务器,这种档次的服务器,从网上订构,dell送货上门,只要8000元人民币。

如果采取服务器/终端的形式运行,客户机上无盘,都使用服务器上的资源,建议使用双至强CPU,2G的内存,320G的硬盘。这要10000多元。

2、选择一台服务器要参考的性能指标有:运行的稳定性和可靠性、运行速度、内存大小、硬盘存储量。

3、中小企业选用服务器的特点和选构原则:适用性,必须能满足公司需要。可靠性,服务器运行必须稳定可靠,否则会影响公司运转。前瞻性,必须考虑到形势的发展,未来5年设置不会被淘汰,且能适应企业发展的需要,但不能为了追求时髦购买过高档次的服务器,这会导致浪费,再过几年,会有性价比更好的服务器出产。经济性,在考虑性价比时,选择最优最惠产品。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » [PT_02] 性能测试-性能指标的分析 & 定义

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情