ps:本博客内容只针对博主复习期间对考点的一些总结,内容可能并不全面,还望海涵。也欢迎大家补充和指点错误~~
计算机系统的性能指标以 系统响应时间 和 作业的吞吐量 为代表。
响应时间
-
系统响应时间是指用户发出完整的请求到系统完成任务做出响应的时间间隔。
-
处于系统中不同角色的人,对响应时间的关注点是不同的。
-
从管理员的角度看,系统响应时间是指从服务器(给用户提供服务的接口服务器,中间的一些业务处理服务器,数据库服务器)接收请求开始计时,到服务器完成请求并将请求信息返回用户的这段时间的间隔(不包含请求和响应在网络上的通讯时间)。
-
从用户角度看,是从用户发出请求开始计时,到响应结果显示在用户机器屏幕上的这段时间间隔,等于客户端的请求队列加上服务器的响应时间和网络的响应时间总和,是所有响应时间中最长的。
-
-
影响系统平均响应时间的因素:
-
和业务有关,处理不同的业务会有不同的响应时间;
-
和业务组合有关,业务之间可能具有依赖等关系,也会相互影响;
-
和用户的数量有关,大并发量会影响响应时间。
-
-
测试响应时间的方法:
-
首字节响应时间:指向服务器发送请求到接收到响应的第一个字节的时间间隔;
-
末字节响应时间:指向服务器发送请求到接收到响应的最后一个字节的时间间隔;
-
-
米勒的3个经典有关响应时间的建议:
-
0.1秒,用户感受不到任何延迟;
-
1秒,用户愿意接受的立即响应的极限;
-
10秒,用户保持注意力执行本次任务的极限。
-
吞吐量
-
吞吐量:指单位时间内处理数据(事务)的数量。
-
计算机的吞吐量主要取决于内存的存取周期;会受到响应时间的影响。
-
在实际应用中,用户所关心的一般是整个计算机系统(包括软件和硬件)的吞吐量。
-
从现实的请求和服务来看,一般都服从M/M/I排队模型。
-
性能计算公式:
-
平均利用率=平均到达事务数/平均处理事务数
-
平均响应时间=平均处理时间/1-平均利用率
-
系统可靠性
-
系统可靠性:指的是系统在规定时间和规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。
-
平均无故障时间(MTTF):从t=0开始到故障发生时系统持续运行时间;
-
平均故障修复时间(MTTR)故障的修复时间;
-
平均故障间隔时间(MTBF)两次故障之间必然有修复行为:MTBF=MTTF+MTTR,但由于MTTR很小,所以MTBF约等于MTTF
-
系统可用性(A):指在某个规定时间点上程序能够按照需求执行的概率。
- A=MTTF/MTBF(MTTR+MTTF)×100%
串联系统:
-
可靠性:R=R1×R2×R3…×Rn
-
失效率:r=r1+r2+r3…+rn
并联系统:
-
可靠性:R=1-(1-R1) ×(1-R2) ×…×(1-Rn)
-
失效率:1/ ( 1/r)*(1/j)(j=1,…n)
系统性能设计
性能调整
-
前期准备工作:
-
识别约束:在寻找提高性能的方法时,必须集中在不受约束的因素上;
-
指定负载:确定系统客户端需要哪些服务,以及对这些服务的需求程度;
-
设置性能目标:明确性能调整的目标。
-
-
性能调整是一个循环执行的工作,包括 收集、分析、配置、测试 4个反复的步骤。
-
收集:收集阶段是任何性能调整操作的起点;
-
分析:对收集的数据进行分析以确定瓶颈;
-
配置:分析之后可以确定哪个部分最适合进行配置更改,实现此更改,原则是一次仅实现一个配置的更改。因为,如果同时进行多个更改,将不可能准确的评定每次更改的影响。
-
测试:配置更改后,必须完成适当级别的测试,确定更改对调整的系统所产生的影响。
-
阿姆达尔解决方案——案例:2009/13
-
系统中对某部件采用某种更快的执行方式,所获得的系统性能的改变程度,取决于这种方式被使用的概率或所占总执行时间的比例。
-
加速比=不使用增强部件时完成整个任务的时间/使用增强部件时完成整个任务的时间
-
新的执行时间=原来执行时间×[(1-增强比例)+(增强比例/增强加速比)]
-
总加速比=原来执行时间/新执行时间=1/[(1-增强比例)+(增强比例/增强加速比)]
-
负载均衡
-
是由多台服务器以对称的方式组成的一个服务器集合,每台服务器具有等价的地位,能够独立的对外提供服务而无需其他服务器的辅助。通过某种负载分担技术,将外部发来的请求均匀分配到对称结构中某台服务器上,而接收请求的服务器独立回应请求。
-
比较常用的负载均衡技术:
-
基于DNS(域名解析)的负载均衡:在DNS中为多个地址配置同一个名字,查询这个名字的客户机将得到其中一个地址,从而使不同客户访问不同服务器,达到负载均衡目的。不能区分服务器的差异,也不能放映服务器当前运行状态。
-
代理服务器负载均衡:使用代理服务器可将请求均匀的发给多台服务器,达到负载均衡的目的。使用这种模式还可以提升静态页面的访问速度。
-
地址转换网关负载均衡:将一个外部IP地址映射成多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。
-
协议内部支持负载均衡:有的协议内部支持与负载均衡有关的功能,例如HTTP协议的重定向能力。
-
NAT(网络地址转换)负载均衡:一般用于未经注册的内部地址与合法的、已获注册的Internet IP地址之间的转换。适用于解决Internet IP地址紧张、不想让网络外部知道内部网络结构的场合。
-
反向代理负载均衡:让代理服务器对外表现为一个服务器,接收来自Internet的连接请求,然后再讲请求均匀的转发给内部多台服务器进行处理,从而达到负载均衡的目的。
-
混合型负载均衡:在一些大型网络中,会考虑给每个服务器集群采用最合适的负载均衡方式,然后再在这多个服务器集群间进行负载均衡或集群起来以一个整体向外界提供服务,从未达到最佳性能。也适用于单台均衡设备性能不能满足大量连接请求的情况。
-
系统性能评估
-
系统性能评估常用方法:
-
时钟频率法:
-
是计算机的基本工作脉冲,控制计算机的工作节奏。时钟频率越高,工作速度越快。相同频率、不同体系结构的机器,其速度和性能可能会相差很多。
-
时钟周期(振荡周期):定义为时钟频率的倒数;是计算机最基本最小的时间单位;
-
在一个时钟周期内,CPU仅完成一个最基本的动作。
-
计算机常把指令划分成若干个阶段,每个阶段完成一个基本操作,完成时间为机器周期,一个机器周期由若干个时间周期组合。
-
-
指令执行速度法:
-
用加法指令的运算速度来衡量计算机的速度;
-
表示机器运算速度的单位:MIPS;常有峰值MIPS、基准程序MIPS、以特定系统为基准MIPS
-
MFLOPS(每秒百万浮点操作次数):衡量计算机的科学计算速度,常有峰值MFLOPS、以基准程序测得的MFLOPS
-
MIPS适合衡量标量处理机的性能,MFLOPS适合衡量向量处理机的性能
-
-
等效指令速度法(吉普森混合法、混合比例计算法):
- 通过各类指令在程序中所占的比例(W)进行计算得到,各类执行执行时间t,则等效指令的执行时间T=W.t.(.=1~n),其中.为指令类型数。使用该方法对某些程序来说可能严重偏离实际,尤其是复杂的指令集。
-
数据处理速率法(PDR):
-
采用计算PDR值的方法来衡量机器性能,PDR值越大,性能越好.
-
PDR与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。
-
CTP已取代PDR
-
-
综合理论性能法(CTP):
-
美国政府为限制较高性能计算机出口所设置的运算部件综合性能估算方法。
-
以每秒百万次理论运算MTOPS表示。先算出处理部件每一计算单元的有效计算率R,再按不同字长加以调整,得出该计算单元的理论性能TP,所有TP的总和即为CTP。
-
-
基准程序法
- 是目前一致承认的测试性能的较好方法,有多种基准程序,主要测试整数和浮点性能的基准程序。考虑了上述方法没有考虑的诸如I/O结构、操作系统、编译程序的效率等对系统性能的影响,能够较准确的评价计算机的实际工作能力。
-
系统故障模型
-
系统故障是指由于部件的失效、环境的物理干扰、操作的错误或不正确的设计引起的硬件或软件中的错误状态。
-
错误是指故障在程序或数据结构中的具体位置。
-
故障或错误有几种表现形式:
-
永久性:描述连续稳定的失效、故障或错误。
-
间歇性:描述那些不稳定的,仅仅是偶尔出现的故障或错误。
-
瞬间性:描述由于暂时的环境条件引起的故障或错误。
-
-
故障模型是对故障的表现进行抽象,分为以下几类:
-
逻辑级故障模型
-
固定型故障:某线接地、电源短路或元件失效造成的。
-
短路故障:一个元件的输出线的逻辑值等于输入线的逻辑值;
-
开路故障:元件的输出线悬空,逻辑值可根据具体电路来决定;
-
桥接故障:两条不应相连的线连接在一起。
-
-
数据结构级的故障(差错):
-
独立差错:一个故障的影响表现为 使一个二进制位发生改变;
-
算术差错:一个故障的影响表现为 使一个数据值增加或减少;
-
单向差错:一个故障的影响表现为 使一个二进制向量中的某些位朝一个方向改变。
-
-
软件故障和软件差错
-
软件故障是软件在设计过程造成与设计说明的不一致;软件故障只与设计有关;
-
软件差错是软件在数据结构或程序输出中的故障表现;软件差错有:非法转移、误转移、死循环、空间溢出、数据执行、非法数据。
-
-
系统级的故障模型:
- 表现为功能错误,即系统输出与系统设计说明的不一致。
-
系统可靠性模型
-
与系统故障模型对应的就是系统可靠性模型
-
时间模型
-
假设一个软件故障数在t=0时是个常数,随着故障被纠正,数目逐渐减少。
-
公式:t1时刻剩余故障数=最初的故障数/(指令数-已纠正的故障数)
-
平均无故障时间= (指令数-已纠正的故障数)/C*最初的故障数[C为常数]
-
-
-
故障植入模型
-
一个面向错误数的数学模型。目的是以程序的错误数作为衡量可靠性的标准。
-
基本假设:
-
程序中的固有错误数是一个未知的常数;
-
程序中的人为错误数按均匀分布随机植入;
-
程序中的固有错误数和人为错误数被检测到的概率相同;
-
检测到的错误立即改正。
-
公式:固有错误数=(植入错误数×(检测到的错误数-检测到的植入错误数))/检测到的植入错误数
-
两步查错法:
- 固有错误数=(第一个检测员检测到的错误数×第二个检测员检测到的错误数)/两个检测员检测到的相同错误数
-
-
-
数据模型
- 对于一个预先确定的输入环境,软件的可靠度定义为在n次连续运行中软件完成指定任务的概率。
可靠性设计
-
提高计算机可靠性的技术:
-
避错技术:预防和避免系统在运行中出错;
-
容错技术:系统在出现某一故障存在的情况下能将其自动恢复到发生事故之前的状态,使系统能连续正常的运行。
-
-
实现容错的主要手段是冗余。冗余是指所有对于实现系统规定功能来说是多余的那部分的资源。
-
主要冗余技术:
-
结构冗余:常用的冗余技术。
-
静态冗余:常用三模冗余和多模冗余。通过表决和比较屏蔽出现的错误。
-
动态冗余:多重模块待机储备;当某模块出现错误,用备用模块来顶替重新运行,由于需要检测、切换和恢复,故称动态冗余。备用模块待机时,若与主模块一样工作则称为热备份系统(双重系统),不工作为冷备份系统(双工系统、双分系统)。
-
混合冗余:结合上述两种技术的长处。
-
-
信息冗余:实现正常功能以外添加的信息,以保证运行结果的正确性。
-
时间冗余:使用附加一定时间的方法来完成系统功能:这些附加时间主要用于故障检测、复查或故障屏蔽上。用指令复执或程序复算来消除瞬时错误带来的影响。
-
冗余附加:指为实现上述冗余技术所需的资源和技术。
-
-
故障的恢复策略有两种:
-
前向恢复:使当前的计算继续下去,把系统恢复成连贯的正确状态,这需要有错误的详细说明;
-
后向恢复:系统恢复到前一个正确状态,继续执行,这种方法不适合实时处理场合。
-
软件容错
-
软件容错的主要目的是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高软件可靠性,保证整个计算机系统的正常运行。
-
主要容错技术:
-
恢复快方法:一种动态的故障屏蔽技术,采用后向恢复策略。
-
N版本程序设计:一种静态的故障屏蔽技术,采用前向恢复策略;
-
防卫式程序设计:不采用任何一种传统的容错技术,而是通过在程序中存储错误检查代码和错误恢复代码,使其一旦发生错误就撤销错误状态,恢复到一个已知的正确状态的策略。包含了错误检测、破坏估计、错误恢复三方面。
-
集群技术
-
集群是由两台以上节点机(服务器)构成的一种松耦合的计算节点集合,为用户提供网络服务或应用程序的单一客户视图,同时提供接近容错机的故障恢复能力,用于提高可用性和可缩放性。
-
集群分类:
-
高性能计算科学集群:解决复杂的科学计算问题,具有优良的性价比;
-
负载均衡集群:使资源尽可能平均合理的分摊处理,适合于运行同一组应用程序的大量用户。
-
高可用性集群:整个系统环境对用户是透明的,某个节点发生故障将有另外的节点来代替它。
-
-
集群的硬件配置:
-
镜像服务器双机:最简单最低廉的解决方案。
-
双机与磁盘阵列柜:
-
光纤通道双机双控集群系统
-