免费智能真题库 > 历年试卷 > 系统分析师 > 2024年上半年 系统分析师 下午试卷 论文
  第2题      
  知识点:   测试工具   吞吐量   响应时间   性能测试   性能测试的目的   质量保证   测试的目的   测试内容   负载测试   软件系统   性能指标   压力测试   异常   自动化

 
性能测试是通过自动化测试工具模拟多种正常、峰值及异常负载条件,对系统的各项性能指标进行测试。性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样,常见的负载测试压力测试都属于性能测试
性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,并优化软件,最后起到优化系统的目的。性能测试的主要指标有响应时间吞吐量、并发用户数、资源利用率等。
 
问题:2.1   请围绕“性能测试方法及其应用"论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。
2.结合你参与管理和开发的实际项目,论述你执行性能测试的目的和具体内容。
3.结合你参与管理和开发的实际项目,说明你是如何进行性能测试分析,从而找出性能瓶颈的。
 
 
 

   知识点讲解    
   · 测试工具    · 吞吐量    · 响应时间    · 性能测试    · 性能测试的目的    · 质量保证    · 测试的目的    · 测试内容    · 负载测试    · 软件系统    · 性能指标    · 压力测试    · 异常    · 自动化
 
       测试工具
        测试工具是指辅助测试过程活动的各类软件,通常可分为白盒测试工具、黑盒测试工具和测试管理工具等。比较有代表性的白盒测试工具包括Compuware的Numega系列工具、ParaSoft的Java Solution和C/C++Solution系列工具以及开放源代码的以Junit、Dunit、HttpUnit为代表的Xunit系列工具;比较有代表性的黑盒测试工具包括Mercury Interactive的TestSuite系列工具、IBM Rational的TestStudio系列工具和Compuware的QACenter系列工具;比较有代表性的测试管理工具包括Mercury Interactive的TestDirector、Empirix的d-Tracker、Segue的Silkplan pro、Compuware的TrackRecord和IBM Rational的ClearQuest。
        下面重点介绍Mercury Interactive公司的功能测试工具WinRunner、性能负载测试工具LoadRunner和测试管理工具TestDirector。
        WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能以及是否能够正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。
        LoadRunner是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业体系结构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner是一种适用于各种体系结构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助开发人员更快地查找和发现问题。此外,LoadRunner能支持广泛的协议和技术,为特殊环境提供特殊的解决方案。
        TestDirector是业界第一个基于Web的测试管理系统,它可以在公司内部或外部进行全球范围内测试的管理。TestDirector在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理、测试计划、测试执行以及错误跟踪等功能。TestDirector能消除组织机构间、地域间的障碍,让测试人员、开发人员或其他人员通过一个中央数据仓库,在不同地方交互测试信息。TestDirector将测试过程流水化,从测试需求管理,到测试计划、测试日程安排、测试执行,再到出错后的错误跟踪,仅在一个基于浏览器的应用中便可完成,而不需要每个客户端都安装一套客户端程序。
 
       吞吐量
        吞吐量就是在给定的时间内,系统的吞入能力与吐出能力是多少。这里的“系统”可以是整个计算机系统,也可以是某个设备。例如,计算机的吞吐量是指流入、处理和流出系统的信息速率,它取决于信息能够多快地输入内存,CPU能够多快地取指令,数据能够多快地从内存取出或存入,以及所得结果能够多快地从内存送给一台外围设备。这些步骤中的每一步都关系到内存,因此,计算机的吞吐量主要取决于内存的存取周期。
        在实际应用中,用户所关心的往往不是计算机硬件系统的吞吐量,而是整个计算机系统(包括硬件和软件)的吞吐量。从系统角度来看,吞吐量是指单位时间内系统所能完成的任务数量。显然,若一个给定系统持续地收到用户提交的任务请求,则系统的响应时间将对作业吞吐量造成一定影响。若每个任务的响应时间越短,则系统的空闲资源越多,整个系统在单位时间内完成的任务量将越大;反之,若响应时间越长,则系统的空闲资源越少,整个系统在单位时间内完成的任务量将越少。
        从现实的请求与服务来看,一般都服从M/M/1排队模型。M/M/1排队模型是指顾客到达时间间隔服从指数分布,则顾客到达过程为泊松分布,接受完服务的顾客和到达的顾客相互独立,服务时间分布为指数分布。且顾客的到达和服务都是随机的,服务台为一个,排队空间无限。
        下面是性能计算中的两个公式:
        
        例如,假设某计算机系统的用户在1秒钟内发出40个服务请求,这些请求(为M/M/1队列)的时间间隔按指数分布,系统平均服务时间为20ms。则该系统的吞吐量为1000/20=50(1s=1000ms),系统的平均利用率为40/50=0.8,系统的平均响应时间为20ms/(1-0.8)=100ms。
 
       响应时间
        系统响应时间是指用户发出完整请求到系统完成任务后给出响应的时间间隔。处于系统中不同的角色的人,对响应时间的关注点是不一样的。从系统管理员的角度来看,系统响应时间指的是从服务器收到请求的时刻开始计时,到服务器完成执行请求,并将请求的信息返回给用户这一段时间的间隔。这个“服务器”包含的范围是给用户提供服务的接口服务器,中间的一些业务处理的服务器和排在最后面的数据库服务器。这里并不包含请求和响应在网络上的通讯时间。
        从用户的角度来看,响应时间是用户发出请求开始计时,(如按下“确认”或“回车”键的时刻),到用户请求的相应结果展现在用户机器屏幕的这一段时间间隔。这个时间称为“客户端的响应时间”,它等于客户端的请求队列加上服务器的响应时间和网络的响应时间的总和。可以看出,从用户角色感受的“响应时间”是所有响应时间中最长的,很多影响因素不在应用系统的范围内,如数据包在网络上的传输时间、域名解析时间等。
        响应时间超出预期太多的应用系统会导致用户的反感,因为系统在让他们等待,这样会降低他们的工作效率,延长他们的工作时间。位于互联网上的Web网站也存在同样的问题,有调查表明,如果一个Web网页不能在8秒钟内下载到访问的用户端,访问者就会失去耐性,他们有的尝试其他同类型的网站,有的可能访问竞争者的网站,并且可能影响他们圈子里面的人访问这个网站的兴趣和取向。对于一个指望这些访问者变为客户的网站而言,响应时间过长带来的后果等同于销售额的损失。
        系统的响应时间对每个用户来说都是不一样的,以下因素会影响系统的平均响应时间:
        (1)和业务相关,处理不同的业务会有不同的响应时间。
        (2)和业务组合有关,业务之间可能存在依赖关系或其他,也会相互影响。
        (3)和用户的数量有关,大并发量会严重影响响应时间。
        有多种方法可以用来测试响应时间,常用的有两种方法,分别是首字节响应时间和末字节响应时间。首字节响应时间是指向服务器发送请求到接收到响应的第一个字节之间的时间,末字节响应时间是指向服务器发送请求与接收到响应的最后一个字节之间的时间。通过测量响应时间,可以知道所有客户端用户完成一笔业务所用的时间以及平均时间和最大时间。
        米勒曾经给出了3个经典的有关响应时间的建议,至今仍有参加价值:
        (1)0.1秒:用户感觉不到任何延迟。
        (2)1秒:用户愿意接受的系统立即响应的时间极限。即当执行一项任务的有效反馈时间在0.1~1秒之内时,用户是愿意接受的。超过此数据值,则意味着用户会感觉到有延迟,但只要不超过10秒,用户还是可以接受的。
        (3)10秒:用户保持注意力执行本次任务的极限,如果超过此数值时仍然得不到有效的反馈,用户会在等待计算机完成当前操作时转向其他的任务。
 
       性能测试
        性能测试是通过自动化的测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行,统称为负载压力测试。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或不能接收的性能点,来获得系统能提供的最大服务级别的测试。
               性能测试的目的
               性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,并优化软件,最后达到优化系统的目的。具体来说,包括以下几个方面。
               (1)评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助做出决策。
               (2)识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
               (3)系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
               (4)检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄漏等引起的失败,揭示程序中的隐含的问题或冲突。
               (5)验证稳定性和可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
               性能测试的类型
               性能测试类型包括负载测试、强度测试和容量测试等。
               (1)负载测试:负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。
               (2)强度测试:强度测试是在系统资源特别低的情况下考查软件系统运行情况。
               (3)容量测试:确定系统可处理的同时在线的最大用户数。
               性能测试的步骤
               由于工程和项目的不同,所选用的度量及评估方法也有不同之处。不过仍然有一些通用的步骤可帮助我们完成一个性能测试项目。其步骤如下:
               (1)制定目标和分析系统。
               (2)选择测试度量的方法。
               (3)学习相关技术和工具。
               (4)制定评估标准。
               (5)设计测试用例。
               (6)运行测试用例。
               (7)分析测试结果。
               负载压力测试
               系统的负载压力测试(负载测试)中的负载是指系统在某种指定软件、硬件及网络环境下承受的流量,例如并发用户数、持续运行时间、数据量等,其中并发用户数是负载压力的重要体现。系统在应用环境下主要承受并发访问用户数、无故障稳定运行时间和大数据量操作等负载压力。
               负载压力测试的目的如下:
               (1)在真实环境下检测系统性能,评估系统性能是否可以满足系统的性能设计要求。
               (2)预见系统负载压力承受力,对系统的预期性能进行评估。
               (3)进行系统瓶颈分析、优化系统。
               在网络应用系统中,负载压力测试应重点关注客户端、网络及服务器(包括应用服务器和数据库服务器)的性能。应获取的关键测试指标如下。
               (1)客户端:并发用户数、响应时间、交易通过率及吞吐量等。
               (2)网络:带宽利用率、网络负载、延迟,以及网络传输和应用错误等。
               (3)服务器:操作系统的CPU占用率、内存使用和硬盘I/O等;数据库服务器的会话执行情况、SQL执行情况、资源争用及死锁等;应用服务器的并发连接数、请求响应时间等。
 
       性能测试的目的
        性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,并优化软件,最后达到优化系统的目的。具体来说,包括以下几个方面。
        (1)评估系统的能力:测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助做出决策。
        (2)识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
        (3)系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
        (4)检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄漏等引起的失败,揭示程序中的隐含的问题或冲突。
        (5)验证稳定性和可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
 
       质量保证
        在明确了项目的质量标准和质量目标之后,需要根据项目的具体情况,如用户需求、技术细节、产品特征,严格地实施流程和规范,以此保证项目按照流程和规范达到预先设定的质量标准,并为质量检查、改进和提高提供具体的度量手段,使质量保证和控制有切实可行的依据。所有这些在质量系统内实施的活动都属于质量保证,质量保证的另一个目标是不断地进行质量改进,为持续改进过程提供保证。
        项目质量保证指为项目符合相关质量标准要求树立信心,而在质量系统内部实施的各项有计划的系统活动,质量保证应贯穿于项目的始终。质量保证往往由质量保证部门或项目管理部门提供,但并非必须由此类单位提供。质量保证可以分为内部质量保证和外部质量保证,内部质量保证由项目管理团队,以及实施组织的管理层实施,外部质量保证由客户和其他未实际参与项目工作的人们实施。
        质量保证的工具和技术有质量计划工具和技术、质量审计、过程分析、质量控制工具和技术、基准分析。
        质量审计是对特定管理活动进行结构化审查,找出教训以改进现在或将来项目的实施。质量审计可以是定期的,也可以是随时的,可由公司质量审计人员或在信息系统领域有专门知识的第三方执行。在传统行业,质量审计常常由行业审计机构执行,他们通常为一个项目定义特定的质量尺度,并在整个项目过程中运用和分析这些质量尺度。
        过程分析遵循过程改进计划的步骤,从一个组织或技术的立场上来识别需要的改进。这个分析也检查了执行过程中经历的问题、经历的约束和无附加价值的活动。过程分析是非常有效的质量保证方法,通过采用价值分析、作业成本分析及流程分析等分析方法,质量保证的作用将大大提高。
        软件质量保证(Software Quality Assurance, SQA)是指为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划、有组织的活动,这些活动贯穿于软件生产的各个阶段即整个生命周期。
        SQA由各项任务构成,这些任务的参与者有两种人:软件开发人员和质量保证人员。前者负责技术工作,后者负责质量保证的计划、监督、记录、分析及报告工作。软件开发人员通过采用可靠的技术方法和措施,进行正式的技术评审,执行软件测试来保证软件产品的质量。SQA人员则辅助软件开发组得到高质量的最终产品。
        1993年美国卡耐基.梅隆大学软件工程研究所推荐了一组有关质量保证的计划、监督、记录、分析及报告的SQA活动。这些活动将由一个独立的SQA小组执行。
        (1)制定SQA计划。SQA计划在制定项目计划时制定,由相关部门审定。它规定了软件开发小组和质量保证小组需要执行的质量保证活动,其要点包括:需要进行哪些评价?需要进行哪些审计和评审?项目采用的标准;错误报告的要求和跟踪过程;SQA小组应产生哪些文档?为软件项目组提供的反馈数量等。
        (2)参与开发该软件项目的软件过程描述。软件开发小组为将要开展的工作选择软件过程,SQA小组则要评审过程说明,以保证该过程与组织政策、内部的软件标准、外界所制定的标准以及软件项目计划的其他部分相符。
        (3)评审。评审各项软件工程活动,核实其是否符合已定义的软件过程。SQA小组识别、记录和跟踪所有偏离过程的偏差,核实其是否已经改正。
        (4)审计。审计指定的软件工作产品,核实其是否符合已定义的软件过程中的相应部分。SQA小组对选出的产品进行评审,识别、记录和跟踪出现的偏差,核实其是否已经改正,定期向项目负责人报告工作结果。
        (5)记录并处理偏差。确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程进行处理。偏差可能出现在项目计划、过程描述、采用的标准或技术工作产品中。
        (6)报告。记录所有不符合部分,并向上级管理部门报告。跟踪不符合的部分直到问题得到解决。
        除了进行上述活动外,SQA小组还需要协调变更的控制与管理,并帮助收集和分析软件度量的信息。
 
       测试的目的
        软件测试是软件质量保证的主要手段之一,也是在将软件交付给客户之前所必须完成的步骤。目前,软件的正确性证明尚未得到根本的解决,软件测试仍是发现软件错误和缺陷的主要手段。软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。
        1983年,Bill Hetzel在《Complete Guide of Software Testing》一书中指出:“测试是以评价一个程序或系统属性为目标的任何一种活动。测试是对软件质量的度量”。Grenford J. Myers在《The Art of Software Testing》一书中指出:
        (1)软件测试是为了发现错误而执行程序的过程。
        (2)测试是为了证明程序有错,而不是证明程序无错误。
        (3)一个好的测试用例在于它能发现至今未发现的错误。
        (4)一个成功的测试是发现了至今未发现的错误的测试。
        这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的,事实并非如此。
        首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。
        其次,没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
        因此,软件测试可以验证软件是否满足软件需求规格说明和软件设计所规定的功能、性能及软件质量特性的要求,为软件质量的评价提供依据。
        软件测试只是软件质量保证的手段之一,不能单凭测试来保证软件质量。
 
       测试内容
        由于每种测试所花费的成本不同,如果测试步骤安排得不合理,将会造成为了寻找错误原因而浪费大量的时间以及重复测试的情况。因此,合理安排测试步骤对于提高测试效率和降低测试成本有很大的作用,信息系统测试分别按硬件系统、网络系统和软件系统进行测试,最后对整个系统进行总的综合测试。
        (1)硬件测试。
        在进行信息系统开发中,通常需要根据项目的情况选购硬件设备。在设备到货后,应在各个相关厂商配合下进行初验测试,初验通过后将硬件与软件、网络等一起进行系统测试。初验测试所做的工作主要如下。
        .配置检测,检测是否按合同提供了相应的配置,如系统软件、硬盘、内存、CPU等的配置情况。
        .硬件设备的外观检查,所有设备及配件开箱后,外观有无明显划痕和损伤。这些包括计算机主机、工作站、磁带库、磁盘机柜和存储设备等。
        .硬件测试,首先进行加电检测,观看运行状态是否正常,有无报警、屏幕有无乱码提示和死机现象,是否能进入正常提示状态。然后进行操作检测,用一些常用的命令来检测机器是否能执行命令,结果是否正常。例如,文件复制、显示文件内容、建立目录等。最后检查是否提供了相关的工具,如帮助系统、系统管理工具等。
        通过以上测试,要求形成相应的硬件测试报告,在测试报告中包含测试步骤、测试过程和测试的结论等。
        (2)网络测试。
        如果信息系统不是单机,需要在局域网或广域网运行,按合同会选购网络设备。在网络设备到货后,应在各个相关厂商配合下进行初验测试。初验通过后网络将与软件、硬件等一起进行系统测试。初验测试所做的工作主要如下。
        .网络设备的外观检查,所有设备及配件开箱后,外观有无明显划痕和损伤,这些包括交换机、路由器等。
        .硬件测试,进行加电检测,观看交换机、路由器等工作状态是否正常,有无错误和报警。
        .网络连通测试,检测网络是否连通,可以用ping、 telnet、 ftp等命令来检查。
        通过以上测试,要求形成相应的网络测试报告,在测试报告中包含测试步骤、测试过程和测试的结论等。
        (3)软件测试。
        软件测试实际上分成4步:单元测试、组装测试、确认测试和系统测试,它们将按顺序进行。首先是单元测试(Unit Testing),对源程序中的每一个程序单元进行测试,验证每个模块是否满足系统设计说明书的要求。组装测试(Integration Testing)是将已测试过的模块组合成子系统,重点测试各模块之间的接口和联系。确认测试(Validation Testing)是对整个软件进行验收,根据系统分析说明书来考察软件是否满足要求。系统测试(System Testing)是将软件、硬件、网络等系统的各个部分连接起来,对整个系统进行总的功能、性能等方面的测试。
        下面将分别对单元测试、组装测试、确认测试和系统测试的内容和要求加以说明。
 
       负载测试
        负载测试是通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
        负载测试的加载方式通常有如下几种。
        (1)一次性加载。一次性加载某个数量的用户,在预定的时间段内持续运行。例如,在早晨上班的时间访问网站或登录网站的时间非常集中,基本属于扁平负载模式。
        (2)递增加载。有规律地逐渐增加用户,每几秒增加一些新用户,交错上升。借助这种负载方式的测试,容易发现性能的拐点,即性能瓶颈。
        (3)高低突变加载。某个时间用户数量很大,突然降到很低,过一段时间,又突然加到很高,反复几次。借助这种负载方式的测试,容易发现资源释放和内存泄露等问题。
        (4)随机加载方式。由随机算法自动生成某个数量范围内变化的、动态的负载,这种方式可能是和实际情况最为接近的一种负载方式。虽然不容易模拟系统运行出现的瞬时高峰期,但可以模拟系统长时间的运行过程的状态。
 
       软件系统
        网络系统软件包括网络操作系统和网络协议等。网络操作系统是指能够控制和管理网络资源的软件,是由多个系统软件组成,在基本系统上有多种配置和选项可供选择,使得用户可根据不同的需要和设备构成最佳组合的互联网络操作系统。网络协议是保证网络中两台设备之间正确传送数据的约定。
 
       性能指标
        对于各种类的双绞线,用户所关心的能够代表其特征的性能指标有衰减、近端串扰、阻抗特性、分布电容、直流电阻等。
        (1)衰减(Attenuation)。衰减是沿链路的信号损失度量。衰减与线缆的长度有关系,随着长度的增加,信号衰减也随之增加。衰减用dB作单位,表示源传送端信号到接收端信号强度的比率。又因为衰减随频率而变化,所以应该测量在应用范围内的全部频率上的衰减。
        (2)近端串扰(Near-End Crosstalk Loss,NEXT)。串扰可分为近端串扰和远端串扰(Far-End Crosstalk Loss,FEXT),测试仪主要是测量NEXT,由于存在线路损耗,因此FEXT的量值的影响较小,在三类、五类线缆中可以忽略不计。近端串扰损耗是测量一条UTP链路中从一对线到另一对线的信号耦合。对于UTP链路,NEXT是一个关键的性能指标,也是最难精确测量的一个指标。随着信号频率的增加,其测量难度将加大。NEXT并不表示在近端点所产生的串扰值,只是表示在近端点所测量到的串扰值。这个量值会随电缆长度不同而变,电缆越长,其值变得越小。同时发送端的信号也会衰减,对其他线对的串扰也相对变小。实验证明,只有在40m内测量得到的NEXT是较真实的。如果另一端是远于40m的信息插座,那么它会产生一定程度的串扰,但测试仪可能无法测量到这个串扰值。因此,最好在两个端点都进行NEXT测量。现在的测试仪都配有相应设备,使得在链路一端就能测量出两端的NEXT值。
        (3)直流电阻。直流环路电阻会消耗一部分信号,并将其转变成热量。它是指一对导线电阻的和,11801规格的双绞线的直流电阻不得大于19.2Ω。每对间的差异不能太大(小于0.1Ω),否则表示接触不良,必须检查连接点。
        (4)特性阻抗。与环路直流电阻不同,特性阻抗包括电阻及频率为1~100MHz的电感阻抗及电容阻抗,它与一对电线之间的距离及绝缘体的电气性能有关。各种电缆有不同的特性阻抗,而双绞线电缆则有100Ω、120Ω及150Ω几种(其中,120Ω的线缆在中国不生产)。
        (5)衰减串扰比(Attenuation-to-Crosstalk Ratio,ACR)。在某些频率范围,串扰与衰减量的比例关系是反映电缆性能的另一个重要参数。ACR有时也以信噪比(Signal-Noise Ratio,SNR)表示,它由最差的衰减量与NEXT量值的相减得到的。ACR值越大,表示抗干扰的能力越强。一般系统要求至少大于10dB。
 
       压力测试
        压力测试又称为强度测试,是在强负载(加大数据量、大量并发用户等)下的测试,用于查看应用系统在峰值使用情况下的操作行为,目的是发现系统的功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。
        微软测试实践经验表明,如果软件产品通过72小时压力测试,则在72小时后出现问题的可能性微乎其微。所以,72小时成为微软产品压力测试的时间标志。
        负载测试与压力测试是两个很容易混淆的概念。负载测试是通过逐步增加系统负载,测试其变化,看最后在满足性能的情况下,系统最多能接受多大负载的测试。压力测试是在满足性能的情况下,能使系统处于失效的状态,通俗来说,就是发现在什么条件下,系统的性能会变得不可接受。
        压力测试的一般步骤如下:
        ①进行简单多任务测试。
        ②简单压力缺陷修正后,增加系统的压力直到系统崩溃。
        因此,负载压力测试的主要目的是度量应用系统的性能和扩展性。在实施并发负载过程中,通过实时性能监测来确认和查找问题,并针对所发现的问题对系统性能进行优化。负载压力测试工具能够对整个企业架构进行测试,通过这些测试,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
 
       异常
        异常是一种形式的异常控制流,它一部分是由硬件实现的,一部分是由操作系统实现的。因为它们有一部分是由硬件实现的,所以具体细节将随系统的不同而有所不同。然而,对于每个系统而言,基本的思想都是相同的。
        异常(exception)就是控制流中的突变,用来响应处理器状态中的某些变化。异常可以分为四类:中断(interrupt)、陷阱(trap)、故障(fault)和中止(abort)。下表对这些类别的属性做了小结。
        
        异常的类别
        (1)陷阱。陷阱是有意的异常,是执行一条指令的结果。就像中断处理程序一样,陷阱处理程序将控制返回到下一条指令。陷阱最重要的用途是在用户程序和内核之间提供一个像过程一样的接口,叫做系统调用。
        用户程序经常需要向内核请求服务,例如读一个文件、创建一个新的进程、加载一个新的程序或者中止当前进程。为了允许对这些内核服务的受控的访问,处理器提供了一条特殊的syscall指令,当用户程序想要请求服务n时,可以执行这条指令。执行syscall指令会导致一个到异常处理程序的陷阱,这个处理程序对参数解码,并调用适当的内核程序。
        (2)故障。故障由错误情况引起,它可能被故障处理程序修正。当一个故障发生时,处理器将控制转移给故障处理程序。如果处理程序能够修正这个错误情况,它就将控制返回到故障指令,从而重新执行它。否则,处理程序返回到内核中的abort例程,abort例程会中止引起故障的应用程序。
        (3)中止。中止是不可恢复的致命错误造成的结果,典型的是一些硬件错误,例如DRAM或者SRAM位被损坏时发生的奇偶错误。中止处理程序从不将控制返回给应用程序。处理程序将控制返回给一个abort例程,该例程会中止这个应用程序。
 
       自动化
        简而言之,就是将我们日常手动进行的一些工作通过工具,系统自动来完成,解放我们的双手,例如:没有工具前,我们安装系统需要一台一台裸机安装,如2000台,可能需要10人/10天,而现在通过自动化工具,只需几个简单命令就能解决这个问题。还有如机器人类程序,自动完成以往每天人工干预的工作,使其自动完成、汇报结果,并具备一定的专家系统能力,能做一些简单的是/非判断、优化选择等。应该说,自动化运维是运维工程师职业化的一个追求,利己利公,虽然这是一个异常艰巨的任务,不断变更的业务、不规范化的应用设计、开发模式、网络架构变更、IDC变更、规范变动等因素,都可能会对现有自动化系统产生影响,所以需要模块化、接口化等工作。自动化相关工作,是运维工程师的核心重点工作之一,也是价值的体现。
        总结一下运维中关键技术:大量高并发网站的设计方案;高可靠、高可伸缩性网络架构设计;网站安全问题,如何避免被黑?南北互联问题,动态CDN解决方案;海量数据存储架构。
   题号导航      2024年上半年 系统分析师 下午试卷 论文   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
 
第2题    在手机中做本题