在20世纪60年代中期,出现了多任务、多用户的计算机系统,随着大家对这种系统的应用,人们发现这些系统表现出来的实际性能并没有预计的好,从而引发了对计算机系统性能评价的研究。计算机系统性能评价就是采用测量、模拟、分析等方法和工具,研究计算机系统的生产率、利用率、响应特性等系统性能。下面小编就来跟大家说说系统性能评价的相关内容吧!
系统性能评价简介
按照某个或某类计算机系统的用途,求出它的性能指标,并给出其优劣性的评论,研究计算机系统配置、系统负载和性能指标之间的相互关系,进一步优化计算机系统,或者推荐用户选购更合适的计算机系统。
性能的分类
一般来说,计算机系统性能有如下几种:
1)处理能力:一般包含计算速度、吞吐率、响应时间/平均响应时间。其中计算速度有峰值速度、持续可用速度、定点或浮点运算速度,计算速度是用来评价计算机尤其是高性能计算机的主要考量,如我们选购计算机时关注的CPU的主频,严格来说,CPU的主频与CPU实际的运算能力并没有直接关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(缓存、指令集,CPU的位数等等),虽然CPU的主频不代表CPU的速度,但提高主频对于提高CPU运算速度却是至关重要的;吞吐率是单位时间内计算机系统完成的任务数,吞吐率越高,计算机系统的处理能力就越强;响应时间/平均响应时间是从计算机系统得到输入到给出输出结果之间的时间,一般用户比较关心,不过一般响应时间还和使用的软件有关。[1]
2)可靠性:计算机系统正常工作的能力。它要求计算机系统首先是可靠的,或者一旦计算机系统发生故障,它应该具有容错的能力,再或者系统出错后能迅速恢复。通俗的将,即计算机系统最好不要出错,或者少出错,或者出错后能够及时恢复工作状态。由于计算机系统由硬件和软件组成,它们对整个系统的可靠性影响呈现完全不同的特性:硬件和一般人工产品的机件一样,时间一长就要出毛病。软件则相反,时间越长越可靠。因为潜藏的错误(Bug)陆续被发现并解决,它又没有磨损、氧化、松动等问题。所以,计算机的可靠性是指分别研究硬件的可靠性和软件的可靠性。[1]
3)利用率:即在一段时间内被使用的时间(次数)占总时间(总使用次数)的百分比,有硬件利用率、软件利用率、指令利用率等。提高计算机硬件性能利用率多半是对服务器而言,比如很多不同目的的服务器,大部分时间只使用了30%左右的硬件资源,剩余的都是闲置的。目前一般采用VM等虚拟化技术提高计算机利用率。[1]
4)易用性:计算机系统方便用户使用的用户感知度,这是用户选购计算机系统时会考虑的重要指标,通常是对软件系统来说的,比如Windows和Unix的区别,一般用户肯定倾向于使用Windows系统,只有专业人士或者要求安全性高的用户会使用Unix系统。[1]
5)功耗及对环境的要求:对于特殊环境下使用的计算机系统尤其重要,如军用、航天计算机、水下计算机等。计算机系统设计人员也需要考虑对环境的因素,如电压是否稳定等。
系统性能计算
1)计算机系统性能指标以系统响应时间、作业吞吐量为代表。
2)故障响应时间是指从出现故障到该故障得到确认修复前的这段时间。
3)性能指标计算的主要方法有定义法、公式法、程序检测法和仪器检测法。
1、响应时间
(1)系统响应时间是指用户发出完整请求道系统完成任务给出响应的时间间隔。
(2)系统的响应时间对每个用户来说都是不一样的,以下因素会影响系统的平均响应时间:
①和业务相关,处理不同的业务会有不同的响应时间。
②和业务组合有关,业务之间可能存在依赖关系或其他,也会互相影响。
③和用户数量有关,大并发量会严重影响响应时间。
3)有多种方法来测试响应时间,常用的有两种,首字节响应时间和末字节响应时间。
(4)米勒给出的三个经典的有关响应时间的建议:
①0.1s:用户感觉不到任何延迟。
②1s:用户愿意接受的系统立即响应的时间极限。
③10s:用户保持注意力执行本次任务的极限。
2、吞吐量
1)吞吐量就是在给定的时间内,系统的吞入能力与吐出能力是多少。
2)计算机的吞吐量主要取决于内存的存储周期。
3)从系统的角度来看,吞吐量是指单位时间内系统所能完成的任务数量。
4)现实的请求与服务,一般都服从M/M/1排队模型。
5)性能计算中的两个公式:
平均利用率p=平均到达事务数/平均处理事务数,平均响应时间=平均处理时间/(1-p)
系统性能设计
1、系统调整
(1)为了优化系统的性能,有时需要对系统进行调整,这种调整也称为性能调整。
(2)性能调整由查找和消除瓶颈组成。
(3)开始性能调整之前,必须做一些准备工作,为正在进行的性能调整活动建立框架:
①识别约束。约束(如可维护性)在寻求更高的性能方面是不可改变的因素,因此,在寻求提高性能的方法时,必须集中在不受约束的因素上。
②指定负载。确定系统的客户端需要哪些服务,以及对这些服务的需求程度。最常用的度量标准是客户端数目、客户端思考时间以及负载分布状况。
③设置性能目标。性能目标必须明确,包括识别用于调整的度量标准及其对应的基准值。总的系统吞吐量和响应时间是用于测量性能的两个常用度量标准。
(4)建立了性能调整的边界、约束和目标后,就可以开始进入调整循环了。
①收集。使用为系统特定部分选择的性能计数器集合来收集数据。建立系统行为的基准集。
②分析。对数据进行分析以确定瓶颈。
③配置。确定系统那部分最适合进行配置更改,然后实现此更改。最重要规则:一次仅实现一个配置更改。
④测试。确定更改对调整的系统所产生的影响。达到预期则退出,否则调整循环。
2、阿姆达尔解决方案
(1)阿姆达尔(Amdahl)定律:系统中对某部件采用某种更快的执行方式,所获得的系统性能改变程度,取决于这种方式被使用的频率,或所占总执行时间的比例。
(2)加速比=不使用增强部件时完成整个任务的时间/使用增强部件时完成整个任务的时间
(3)加速比取决于两个因素:
①在原有的计算机上,能被改进并增强的部分在总执行时间中所占的比例。
②通过增强的执行方式所取得的改进,这个值是在原来条件下程序的执行时间与使用增强功能后程序的执行时间之比。
(4)新的执行时间=原来的执行时间*((1-增强比例)+增强比例/增强加速比)
(5)总加速比=原来的执行时间/新的执行时间=1/((1-增强比例)+增强比例/增强加速比)
3、负载均衡
(1)负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无需其他服务器的辅助。
(2)比较常见的负载均衡技术如下:
①基于DNS的负载均衡。简单有效,但不能区分服务器差异,也不能反映服务器的当前运行状态。
②代理服务器负载均衡。
③地址转换网关负载均衡。
④协议内部支持负载均衡。如HTTP协议中的重定向能力。
⑤NAT负载均衡。
⑥反向代理负载均衡。
⑦混合型负载均衡。
系统性能评估常用方法
(1)时钟频率
即主频(也就是常听到CPU主频2.81GHz等),通常主频越高,速度越快。但只能够在相同体系结构的机器上进行比较。对于异构系统而言,很难保证其有效性。
(2)指令执行速度
在早期,我们经常使用每次执行的加法指令(由于当时各种指令的速度大致相同或等比例)总数作为衡量其性能的重要指标,其单位为KIPS(每秒千条指令)、MIPS(每秒百万条指令)。
(3)等效指令法
随着时间指令系统的发展,使用单种指令的MIPS值的局限性日益暴露,后来就出现了改进的吉普森混合指令速度法。它通过统计各类指令在程序中所占的比例,进行折算。
(4)数据处理速率(PDR)
它采用固定的比例法莱计算数据处理的速度,而其还仅对CPU和主存的速度进行度量,因此有很大的局限性。
(5)核心程序法
把应用程序中用的最频繁的那部分核心程序作为评价计算机性能的标准程序,在不同机器上运行,测试其执行时间,作为各类几千性能评价的依据。
注意:
①时钟周期时钟频率的倒数,一个时钟周期内,CPU仅完成一个最基本的动作。
②完成一个基本操作所需要的时间称为机器周期,一般由若干时钟周期组成。
③指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。
④MIPS(每秒百万指令数)、MFLOPS(每秒百万浮点操作次数)
⑤等效指令速度法也称为吉普森混合法(Gibsonmix)或混合比例计算法,通过各类指令在程序中所占比例进行计算得到的。
⑥数据处理速率(PDR)=L/R,L=0.85G+0.15H+0.4J+0.15K,R=0.85M+0.09N+0.06P。G是每条定点指令的位数,M是平均定点加法时间,H是每条浮点指令的位数,N是平均浮点加法时间,J是定点操作数的位数,P是平均浮点乘法时间,K是浮点操作数的位数。G>20,H>30
⑦PDR主要对CPU和内存储器的速度进行度量,不适合衡量机器整体速度。
⑧综合理论性能CTP
⑨基准程序法:
·Khrystone基准程序。
·Linpack基准程序。
·Whetstone基准程序。
·SPEC基准程序。两种测试方法:一种是测试计算机完成单个任务的速度测试;一种是测试计算机在一定时间内能完成多少任务的吞吐率测试。
·TPC基准程序。
系统性能评价的意义
无论生产商还是用户,都需要某种方法来衡量计算机系统的性能,但由于系统很复杂,体系结构和实现的策略多样,因此很难采用统一的标准去评测所有的计算机。
小编结语:
性能评价技术就是将看不见摸不着的性能转换为人们能够数量化和可以进行度量和评比的客观指标,以及从系统本身或从系统模型获取有关性能信息的方法。前者即测量技术,后者包括模拟技术和分析技术。它通常是与成本分析结合在一起,以获得各种系统性能和性能价格比的定量值,然后可以指导新型计算机系统(如分布计算机系统)的设计和改进,以及指导计算机应用系统的设计和改进,包括选择计算机类型、型号和确定系统配置等。
以上内容就是小编今天要跟大家分享的!希望对大家的学习有所帮助!更多内容尽在编程学习网教育,欢迎前来咨询!