【系统分析师之路】第十三章 系统配置与性能评价记忆敲出

本文详细介绍了系统分析师在评估系统配置与性能时涉及的关键概念,包括阿姆达尔定律、性能指标、系统性能评价方法如时钟频率法和基准程序法。此外,还讨论了可靠性指标、可用性、串联系统与并联系统的区别,以及故障恢复和冗余技术,如双机热备和集群。最后,对比了高性能主机与集群的优劣,强调了集群在可伸缩性、可用性和性价比上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【系统分析师之路】第十三章 系统配置与性能评价记忆敲出

一. 信息系统中的性能

说到系统的性能,首先我想到的是需求工程中对于系统需求中的非功能需求的收集中,就包含了性能的需求,还有一个与之对应的PIECES模型,PIECES模型第一个考虑元素便是Preformance性能;质量属性中第一个就是性能Performance;在软件架构体系当中4+1视图模型中的进程模型,这个模型就是侧重系统的性能,可扩充性和吞吐量;可见系统性能的好坏越来越受到重视。在本章节中,主要针对三个性能的考点:阿姆达尔定律,系统性能评价方法,性能指标。

二. 阿姆达尔定律

对系统中某组件采用某种更快的方式,所获得的某种性能的改变程度。它的核心思想是对改进部分在总执行时间中所占的百分比。一般会比较改善前和改善后的加速比, 从而来判断系统改善后的性能。这个考点常考也是比较简单的考点。
提升每个部件的话,成本会相当的高。那么就提升部分的部件来加速系统的性能。

三. 性能指标

和性能指标有关系的有三个周期和两个定义。三个周期分别是:时钟周期,总线周期,指令周期;而两个定义是指MIPS和MFLOPS。
指令周期是取出并执行一条指令的时间;总线周期是访问存储器和IO端口所用的时间;而时钟周期是时钟频率的倒数,CPU的主频就是时钟频率。如果CPU主频(时钟频率)为1GHz的话,那么就说明1秒钟有1G个时钟周期,每个时钟周期为1纳秒。
一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。也就是说,一个指令周期包含若干个时钟周期。总结来说就是时钟周期最小,总线周期其次,最大是指令周期。指令时钟数就是完成一条指令所需要的时间
MIPS是每秒处理百万级的机器指令数,主要用它来衡量标量计算机性能
MFLOPS是每秒百万个浮点数操作,主要用来衡量向量计算机性能。

三. 系统性能评价方法

总结一下就是基准程序法是目前最好的评价性能的方法,而时钟频率法只能应用在x86那个年代了,而指令执行速度法和等效指令速度法都只能用在x86那个年代;而到了数据处理PDR,这个时候就开始不光只看CPU,而开始考虑存储了;到了综合理论性能法,开始考虑的是影响性能的多个因素。

1)时钟频率法

最老的评价信息系统性能的方法,就是看CPU时钟频率并以此我依据得出性能好坏的结论。

2)指令执行速度法

从字面上理解就是根据一条指令执行的速度来判断性能,而一条指令周期还是由若干时钟周期构成的,所以在我看来这种方式的性能评价顶多算是时钟频率法的改进版,而官方定义上是表示机器运算速度的单位是MIPS。

3)等效指令速度法

也叫吉布森混合法,让我联想到的是RISC和CISC。在CISC中指令长短是不一样的,那么只是通过单位时间内执行指令个数来判断的话,明显是不合适的,所以也就有了等效指令速度法这种性能评价方法存在的价值,它考虑了各类指令在程序中所占的比例。

4)数据处理速率法

到这里评价性能的方法已经不光光看CPU的时钟频率或者指令周期等来得出结论了。而是把数据存储和CPU性能一起考虑。PDR值越大性能越好。PDR综合考虑了CPU和存储。

5)综合理论性能法

算出每个部件的计算率,再进行调整得出理论性能。至于改善那个部件对性能提升最大,这就可以和阿姆达尔算法联系在一起了。

6)基准程序法

说白了这个就是综合理论性能法的升级版,简单理解为就是跑分软件。它是目前最广泛使用的性能评价方法。

四. 可靠性指标

在系统可靠性指标的概念中,首先要了解三个概念名词:MTTF,MTBF,MTTR。一般情况下MTTR是一个很小的值,它们三者之间的概念和关系见下面的描述:
MTTR:Mean Time To Repair,平均故障修复时间
MTTF:Mean Time To Failure,平均无故障时间
MTBF:Mean Time Between Failure, 平均故障间隔时间
MTTR+MTTF=MTBF 一般情况下,由于MTTF的值很小很小,所以可以认定为MTBF=MTTF(两个F才有可能约等于)。
系统可用性就是:平均无故障时间 / 平均故障间隔时间 = 平均无故障时间 / (平均无故障时间 + 平均故障修复时间)。当MTTF很小的时候,也就是MTBF约等于MTTF的时候,这个时候可用性就约定于100%

五. 可靠性和可用性之间的区别与联系

官方概念区别:提高可靠性是减少系统中断(故障)的次数,提高可用性需要强调减少从灾难中恢复的时间。
基于上面的理解,系统的可靠性就需要看MTTF,MTTF平均无故障时间越长,那么我们就可以说可靠度高;
而系统的可用性我们看的是MTTR,MTTR是平均故障修复时间,这个时间越短,我们就可以认为可用性高。
归纳起来就是没有故障则可靠,快速恢复则可用。(恢复故障短可用高,无故障时间长更可靠)
可靠性和可用性一般很少区分,在架构中质量属性往往提到的是可用性,不说可靠性。可靠性和可用性几乎没有什么区别。但一个强调的是次数,一个强调的是持续的时间。

六. 可靠性分析中的串联系统和并联系统

失效率就是1-可靠度,可靠度越高的系统,失效率越低。
在计算可靠度和失效率的时候,针对串联系统和并联系统要分开考虑。并联系统的失效率是指,当所有的并联中的系统都失效后,那么系统就失效了;而串联系统的失效率是指任何一个系统部件失效后,那么系统就会失效。
串联系统的可靠性=R1R2R3;串联系统的失效率=r1+r2+r3;
并联系统的可靠性=1-(1-R1)(1-R2)(1-R3),并联系统的可靠性=r1r2r3;
当然这里所说的失效率是一个近似的值而不是一个准确的值。
在考试当中串并联系统会一起出现,也就是混合系统,混合系统的可靠性要学会机会,但是不管题目怎么变化,串联时可靠度相乘,并联时用1减去多个系统的失效率的乘积,这样就可以计算正确。
在串并联系统中还有一种模冗余系统,它使用了表决器,多个子系统同时计算,然后针对计算结果少数服从多数的确认,通过少数服从多数的方式达到了冗余的效果。

七. 可靠性分析与设计的基本概念

在信息系统中,系统常常出现的故障有三种类型的表现形式:一种是永久性的故障,一种是间歇性的故障,一种是瞬时性的故障。
系统出现故障就会影响到系统的可靠性。故障次数越多,系统可靠性就越差;所以可靠性的高低直接影响了系统架构的好坏。
当系统出现故障的时候,能够越快地从故障中恢复过来,我们就说系统可用性强。
故障的恢复和系统容错能力紧密相关,系统容错技术又包括了避错技术和容错技术两类。

八. 故障恢复技术

故障恢复技术包括了前项恢复和后项恢复。
前项恢复比较容易理解,当出现故障的时候,就返回到之前最近的一个备份点重新开始执行就可以了。数据库备份与恢复其实都是使用了前项恢复的技术。(适合屏蔽不可预见的错误)
后项恢复需要和冗余机制合起来理解才可以。当某个时刻出现了故障,系统先不停止执行而是让系统继续执行下去,然后通过N模冗余技术,识别并纠正错误的子系统,这个恢复过程由程序设计者的设计。可见系统恢复能力越强大,系统的可靠性就越高。

九. 系统的避错与冗余的概念

我们在编码的时候,对系统输入信息进行范围全角半角的Check也就是防卫式的编程,对软件的可交付成果物进行评审,强化软件设计的工作都属于系统避错技术,通过有效的系统避错技术,可以提高系统的可靠性。
但是即使避错机制做到完美,我们还不能说系统架构的可靠性很高,往往避错技术还要和容错技术相结合使用,才能达到一个很好的效果。
容错机制就是把错误的内容给包容掉。容错基本的思想就是通过冗余来实现的。换个角度来理解,避错技术相当于冲突管理中的撤退回避,而容错技术相当于冲突管理中的缓和包容了。
冗余技术包括了:结构冗余,信息冗余,时间冗余,冗余附加四个种类。

1)结构冗余

双机热备,集群系统都属于结构冗余,简单理解就是通过增加软硬件的方式来增加系统的冗余性;

2)信息冗余

信息冗余就是为信息中增加一些特殊的信息,来确保信息的完整性不会被破坏,比如CRC码就是用来保证信息完整性;

3)时间冗余

时间冗余就是多次执行相同的计算来保证不发生错误,也就是演算的方式来增加系统冗余;

4)冗余附加

而冗余附加就是为了实现上面三种冗余技术所需要的资源和技术,所需的资源和技术

5)静态动态冗余

换一种分类法,冗余技术又可以分为静态冗余,动态冗余和混合冗余三种。静态是通过表决来屏蔽掉系统错误;动态是定位错误并对故障进行修复,这是静态和动态两者之间的最大的区别。
混合冗余应该是同时使用了了静态和动态冗余的技术的系统;
动态冗余包括了之前提到的,集群系统,热备份系统;
静态冗余包括了模冗余系统,表决器等;
在区块链技术中,如果某一个结点被攻破并被篡改,但是其他上下游的结点没有发生变化,所以可以很快发现某个结点被入侵的问题,并对被入侵的结点实施恢复操作,这就是容错技术和前向恢复技术在区块链技术中的一个应用场景。

十. 系统的容错技术

系统容错技术常见的有:防卫式程序设计,N版本程序设计,恢复块等技术。

1)恢复块技术

是来自于硬件容错设计中的动态冗余技术。它强调运行基本块以后调用接收测试,如果失败的话就调用替换件,如果再运行一次还是失败的话,再调用第二个替换件,以此类推。

2)N版本程序设计

是一种静态故障屏蔽技术,N版本程序设计需要多个子系统同时运行,并使用表决器来选择,N版本程序设计一般在普通的软件系统中是不会使用的。N版本程序设计一般在同样的原始需求之下,制作不同的需求规格说明书,由不同的团队来实施可以互为备份冗余的子系统。可见其实施成本是相当高的。

3)防卫式程序设计

以软件设计师编程的角度,通过防御的方式来提高信息系统的容错能力。比如我们在代码中增加Try-Catch,当发现并且检测到错误的时候,及时从错误的状态恢复到正常的状态,这就是防卫式程序设计技术。

十一. 双机容错技术

双机容错技术包含了双机热备模式,双机互备模式,双机双工模式三种。

1)双机热备

双机热备就是专门准备一台PC作为Backup用,这种方式下长期备用服务器会处于待机状态,效率低下,于是就有了双机互备。

2)双机互备

双方互相为对方备份的方式,哪怕一方因为故障停止,另一方跑两个服务就好了,这种方式需要心跳线;

3)双机双工

双机双工就是最早的集群技术,它强调两台机器上跑同一个服务。

十二. 高性能主机VS集群

从可伸缩性上看,虽然可以向高性能主机中增加内存提高CPU主频等方式升级,但这样做对于系统性能的提升是有限的。
而集群方式的话,只要直接增加非高性能的主机就好了,所以集群在可伸缩性上完胜高性能主机。
从可用性上看,高性能主机一旦出现故障,服务器就必须停止运行了,而集群的话某一台主机出现故障,不会影响到其他的主机,所以在可用性上,集群一定要比高性能主机强。
从性价比的角度看,向高性能主机中增加内存提高CPU主频等方式升级,获得的性能提升是有限的,而集群中使用了负载均衡技术,增加廉价的主机后往往性能可以提升很多。
从可管理的角度看,集群可以管理物理节点分散的服务器,也就是说它的服务器可以放置在互联网任何地方。而高性能主机显然不具备这个能力。
从透明性的角度看,集群对用户是高度透明的。
现在看来集群于高性能主机的关系可以归纳为:三个臭皮匠顶个诸葛亮;诸葛亮雇不起或找不到的前提下,还是找三个臭皮匠经济又实惠。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值