性能测试数据分析经验

合集下载

软件性能测试与分析方法讲解

软件性能测试与分析方法讲解

软件性能测试与分析方法讲解1. 引言为了保证软件的高质量和可靠性,进行软件性能测试是非常重要的。

本文将讲解软件性能测试的意义和方法,以及相关的数据分析方法。

2. 软件性能测试的意义软件性能测试是评估软件在特定环境下的性能表现的过程。

它可以检测软件在不同负载条件下的各项性能指标,如响应时间、并发用户数、吞吐量等,以确保软件能够满足用户的需求和系统规格。

3. 软件性能测试方法3.1 负载测试负载测试是软件性能测试中最常用的方法之一。

它通过模拟用户实际使用软件时的负载情况,检测软件在不同负载下的性能表现。

可以使用工具模拟多个用户同时访问系统,并观察系统的响应时间和吞吐量。

3.2 压力测试压力测试是一种集中进行负载测试的方法,它通过增加并发用户数、请求频率等方式来测试软件的性能极限。

它可以帮助确定软件在极端负载条件下的表现,并找出系统容量的极限。

3.3 性能测试性能测试是对系统性能进行全面评估的方法,它包括负载测试和压力测试。

性能测试可以帮助发现软件在实际使用中的性能问题,并提供改进的方向。

3.4 可扩展性测试可扩展性测试是评估软件在不同负载条件下的可扩展性的方法。

它可以检测软件在负载增加时的性能变化情况,并确定软件在不同硬件配置下的扩展性能力。

4. 软件性能数据分析方法4.1 响应时间分析响应时间是衡量软件性能的重要指标之一。

通过对软件在不同负载条件下的响应时间进行分析,可以评估软件的性能瓶颈,并确定性能优化的方向。

4.2 吞吐量分析吞吐量是指软件在单位时间内处理请求的数量。

通过对软件在不同负载下的吞吐量进行分析,可以确定软件的处理能力,并优化系统的性能。

4.3 并发用户数分析并发用户数是指同时访问系统的用户数量。

通过对软件在不同并发用户数下的性能进行分析,可以确定系统的并发能力,并评估系统的稳定性。

4.4 资源利用率分析资源利用率分析可以评估软件在不同负载条件下对计算资源的利用情况。

通过对CPU、内存、网络带宽等指标的分析,可以确定软件的资源占用情况,并进行性能优化。

机械工程中的性能测试与数据分析

机械工程中的性能测试与数据分析

机械工程中的性能测试与数据分析引言机械工程是现代工业发展的基础,而性能测试与数据分析则是评估和提升机械设备性能的重要手段。

本文将从实验设计、测试方法、数据采集与处理、分析与应用等方面来探讨机械工程中性能测试与数据分析的重要性和技术。

一、实验设计任何一项机械性能测试都需要进行科学合理的实验设计。

实验设计的目的是明确测试目标、确定测试内容和参数,并合理安排测试方案。

常见的实验设计方法有正交试验设计、全因素试验设计和响应面试验设计等。

根据具体的测试目标和条件,选择合适的实验设计方法可以提高测试的效率和准确性。

二、测试方法性能测试的测试方法包括静态测试和动态测试。

静态测试是用于测试机械设备在固定状态下的性能指标,如负载能力、刚度等。

而动态测试则是模拟机械设备在运行状态下的工作条件进行测试,如振动、噪音等。

对于不同类型的机械设备,需要选择不同的测试方法,并根据实际需求进行合理的测试。

三、数据采集与处理性能测试需要采集大量的实验数据,而数据采集与处理是保证测试结果准确、可靠的重要环节。

数据采集的方法包括传感器测量和现场观察等。

在采集数据时,要确保数据的准确性和完整性。

而数据处理则包括数据筛选、数据清洗和数据整理等工作。

通过有效的数据采集和处理,可以得到真实、可靠的测试数据。

四、数据分析与应用数据分析是性能测试与数据分析的核心环节,通过对测试数据进行分析可以获取对机械设备性能的深入理解。

数据分析的方法包括统计分析、信号处理和多元分析等。

通过数据分析,可以获取机械设备在不同工作状态下的性能指标,预测机械设备的寿命和故障概率,优化机械设备的设计和工艺。

同时,数据分析还可以用于机械设备的状态监测和预警,提高设备的可靠性和安全性。

结论机械工程中的性能测试与数据分析在提升机械设备性能、优化设计和工艺方面起着重要作用。

通过合理的实验设计、科学的测试方法、有效的数据采集与处理以及深入的数据分析与应用,可以获得准确、可靠的测试结果,并为机械工程的发展和创新提供科学依据。

测试工程师的心得体会分享测试经验与教训

测试工程师的心得体会分享测试经验与教训

测试工程师的心得体会分享测试经验与教训测试工程师的心得体会:分享测试经验与教训在软件开发领域,测试工程师扮演着重要的角色。

他们的职责是确保软件的质量和稳定性,并通过测试和调试来发现并修复潜在的问题。

作为一名经验丰富的测试工程师,我通过多年的实践积累了一些宝贵的经验和教训,今天我愿意与大家分享。

第一部分:测试方法与策略1.选择适当的测试方法在测试过程中,选择适当的测试方法非常重要。

常见的测试方法包括功能测试、性能测试、安全测试等。

根据项目需求和特点,选择合适的测试方法是有效提高测试效率和准确性的关键。

2.制定全面的测试计划测试计划是测试工作的基础。

在制定测试计划时,应该充分考虑项目的需求、目标和资源情况。

合理的测试计划能够帮助测试工程师更好地组织测试活动,并及时发现和解决问题。

3.注重测试用例设计测试用例是测试工作的核心。

设计高质量的测试用例能够覆盖各种情况,有效发现潜在问题。

在设计测试用例时,应该注重测试覆盖率和边界条件,以提高测试的全面性和准确性。

第二部分:测试工作中的经验教训1.细心排查异常在测试过程中,经常会遇到各种异常情况。

作为测试工程师,我们需要具备一种细心的精神,仔细排查每一个异常,并及时记录、上报和解决。

一次次的小问题积累起来,可能会导致系统发生严重故障。

2.合理利用测试工具在测试工作中,合理利用测试工具可以提高测试效率和准确性。

例如,自动化测试工具能够帮助我们快速执行重复的测试任务,减少人为差错。

但是,工具虽好,也需要谨慎使用,避免过度依赖。

3.加强与开发团队的沟通测试工程师和开发团队的紧密合作非常重要。

及早和开发人员沟通,共同讨论问题,能够更快地解决潜在的缺陷。

同时,及时向开发人员反馈问题,有助于提高开发质量。

第三部分:案例分析以下是我在测试工作中遇到的一个案例,通过这个案例我们可以更好地理解测试工程师的心得体会。

案例名称:系统性能问题的发现与解决在某个项目的测试过程中,我们发现了系统的性能问题。

如何进行性能测试测试与分析

如何进行性能测试测试与分析

如何进行性能测试测试与分析在软件开发的过程中,性能测试是重要的一环。

它可以验证系统的性能是否满足需求,是系统上线前必须完成的任务之一。

性能测试包括负载、压力、容量、稳定性等多个方面。

在进行性能测试时,需要注意以下几个方面。

一、测试环境的准备测试环境的准备是性能测试的关键。

测试环境应该尽可能地接近生产环境才能更好地预测系统的行为。

测试环境的硬件、软件、网络等要与生产环境一致。

测试环境的构建过程中还需注意以下几点。

1.硬件设备准备测试环境的硬件设备要与生产环境一致,包括CPU、内存、磁盘、网络等方面。

测试环境的硬件可以根据系统的预估负载来确定,从而确保测试环境与生产环境的相似度。

2.软件环境准备测试环境中的软件要与生产环境保持一致,包括操作系统、数据库、应用服务器、Web服务器等方面。

在进行性能测试时要确保软件版本和配置都与生产环境一致。

3.测试数据准备测试数据在性能测试中非常重要。

测试数据应尽可能的符合实际业务场景,包括用户的请求数据、响应数据等。

测试数据的数量和规模要符合实际负载情况。

二、性能测试的基本流程性能测试的基本流程包括负载测试、压力测试、容量测试和稳定性测试。

其中,1.负载测试:是在不同的负载情况下测量系统的性能。

通过多种负载情况的测试,可以确定系统的最大负载容量。

2.压力测试:是在高负载的情况下,测试系统的性能表现。

这可以用来确定系统对于超出承受能力的情况下的表现情况。

3.容量测试:是确定系统能够处理多大的请求量,以及资源的利用情况。

通过测试模拟大规模的请求和负载情况下的系统表现来找到最佳的容量方案。

4.稳定性测试:是在长时间的负载下,测量系统的稳定性。

这可以用来确定系统在比较固定的负载下的表现情况。

三、性能测试数据的统计和分析性能测试之后,需要对测试数据进行统计和分析。

在性能测试中,主要统计和分析的数据包括响应时间、吞吐量、错误率等方面。

1.响应时间响应时间是衡量系统性能的重要指标之一。

风机性能测试实验报告心得

风机性能测试实验报告心得

风机性能测试实验报告心得引言风机作为一种常见的动力机械设备,在工业生产、航空航天、能源等领域都具有广泛应用。

其性能测试是评估风机效果和优化设计的重要手段之一。

本文通过对一次风机性能测试实验的观察和分析,总结了一些心得和经验,并对实验的优化工作提出了建议。

实验目的本次实验的目的是通过测试风机在不同工况下的性能参数,包括风量、压力、效率等,以评估风机的性能指标,并为进一步的设计和应用提供依据。

实验过程一、实验前准备:1. 根据实验要求选择合适的试验风机和测量仪器,并检查其工作状态和准确性。

2. 清理实验场地,确保环境整洁且无干扰因素。

二、实验参数设置:1. 根据实验要求,确定风机控制工况和测试工况的参数。

2. 按照参数设置,对风机进行调整和校准,确保其工作在稳定状态。

三、实验数据采集:1. 依次进行各项测试,记录风机运行过程中的相关数据,包括转速、电流、压力差等。

2. 采集数据时要保证准确性和一致性,可进行多次重复测试以确保结果的可靠性。

四、数据处理与分析:1. 对采集到的数据进行整理和筛选,筛除异常数据和干扰因素。

2. 运用统计分析方法,计算风机在不同工况下的性能参数,如风量、效率等。

3. 绘制图表,清晰展示实验结果,分析数据间的趋势和关系。

五、实验总结与讨论:1. 根据实验结果,总结风机性能的特点和规律。

2. 对实验中的问题和不足进行分析和讨论,提出改进意见和建议。

3. 结合实际应用需求,探讨风机性能优化的措施和方法。

实验心得通过本次风机性能测试实验,我深刻认识到了以下几点:一、仪器选择和校准的重要性:在实验前,选择合适的测量仪器对于保证数据准确性非常重要。

而仪器的准确性则需要经过校准和调试,确保其工作正常。

只有准确的仪器才能提供可靠的数据支持,避免测试结果的误差。

二、数据采集的仔细和耐心:实验中,数据采集需要仔细和耐心,尤其是对于风机参数的连续监测。

经常检查仪器状态、记录数据间隔、排除外界干扰等是保证数据质量的关键。

结合大数据的性能测试数据分析方法

结合大数据的性能测试数据分析方法

结合大数据的性能测试数据分析方法大数据的性能测试是指通过对大数据处理系统进行测试和评估,以了解其性能指标和瓶颈,从而优化系统性能。

为了更好地分析和理解性能测试数据,我们需要采用一些方法和技术来处理和分析这些数据。

我们可以利用统计学方法对性能测试数据进行分析。

统计学方法可以帮助我们了解数据的分布情况、变异情况和相关性,从而判断性能测试结果的可靠性和稳定性。

例如,我们可以计算性能指标的平均值、方差和标准差,以及通过回归分析来判断性能指标之间的关系。

我们可以采用数据可视化技术对性能测试数据进行可视化分析。

数据可视化可以将抽象的数据转化为直观的图表、图形或动画,使人们更容易理解和分析数据。

例如,我们可以使用折线图、柱状图或散点图来展示性能指标随时间的变化趋势,或者使用热力图来展示不同参数对性能指标的影响。

我们还可以应用机器学习算法来分析性能测试数据。

机器学习是一种通过训练模型来自动发现模式和规律,从而实现数据分析和预测的方法。

例如,我们可以使用聚类算法将性能测试数据分为不同的类别,并分析不同类别的特点和规律;或者使用分类算法来预测系统性能在不同配置下的表现。

我们可以利用异常检测技术来发现性能测试数据中的异常情况。

异常检测可以帮助我们及时发现系统性能的异常和故障,并采取相应的措施进行修复和优化。

例如,我们可以通过统计方法、机器学习模型或规则引擎来检测性能测试数据中的异常点、异常模式或异常行为。

为了更好地分析和管理性能测试数据,我们可以借助大数据平台和工具。

大数据平台可以帮助我们存储、处理和分析海量的性能测试数据,提供高效的计算和查询能力。

例如,我们可以使用Hadoop、Spark和Elasticsearch等工具来构建大数据平台,并利用它们提供的分布式计算和数据分析功能来处理性能测试数据。

综上所述,结合大数据的性能测试数据分析方法可以通过统计学方法、数据可视化技术、机器学习算法、异常检测技术和大数据平台来对性能测试数据进行有效分析和处理。

性能测试结果分析

性能测试结果分析

性能测试结果分析性能测试是一种评估软件系统运行效率和稳定性的方法,通过模拟真实的使用场景和负载条件,对系统进行压力测试和负载测试,并对测试数据进行分析,以评估系统的性能。

性能测试的结果是评估系统的关键指标,并提供了进一步优化系统性能的依据。

在进行性能测试后,我们需要对测试结果进行分析,以获取系统的性能数据并解读这些数据。

以下是对性能测试结果的分析和解读的一般步骤:1.确定关键指标:首先,我们需要确定关键指标,这些指标与系统性能有关。

这些指标可以包括响应时间、吞吐量、并发用户数、资源利用率等。

根据系统的性质和要求,选择适当的指标。

2. 数据整理和清洗:对测试结果进行整理和清洗,去除异常数据和噪声数据,确保分析结果准确可靠。

这一步骤通常涉及使用数据分析工具,如Excel、Python等。

3.统计指标分析:使用合适的统计方法对指标进行分析。

对于持续型变量,可以计算平均值、中位数、最大值、最小值等。

对于分类型变量,可以计算百分比、频数等。

统计分析可以帮助我们了解系统的性能状况,如平均响应时间、最大并发用户数等。

4.与标准值比较:将得到的性能指标与预先设定的标准值进行对比。

标准值可以是已经存在的相似系统的性能指标,也可以是业务需求和用户期望的指标。

通过与标准值比较,可以判断系统性能是否符合预期,并找出存在的性能问题。

5.瓶颈分析:根据测试结果,找出系统的性能瓶颈点。

性能瓶颈是指限制系统性能提升的原因,可能是硬件资源受限、软件设计问题、数据库访问延迟等。

通过分析性能瓶颈,可以确定问题的根源并优化系统性能。

6.建议和优化措施:根据测试结果和瓶颈分析,提出相应的改进建议和优化措施。

这些建议和措施可以包括硬件升级、软件优化、网络优化等。

通过实施这些改进措施,可以提高系统的性能和稳定性。

总之,在性能测试结果分析中,我们需要将测试数据整理和清洗,并使用统计方法对指标进行分析。

通过与标准值比较,找出系统的性能瓶颈并提出改进建议。

软件测试报告性能测试数据分析与建议

软件测试报告性能测试数据分析与建议

软件测试报告性能测试数据分析与建议软件测试报告:性能测试数据分析与建议一、测试背景在软件开发生命周期的各个阶段,性能测试是其中至关重要的环节。

本篇测试报告将对于某款软件的性能测试数据进行分析,并给出相应的建议,旨在提供有益的信息和指导,以便在软件的优化和改进过程中能够得到更好的效果。

二、测试方法在本次性能测试中,采用了以下的测试方法:1. 负载测试:通过模拟用户的实际使用情况,对软件在不同负载下的性能进行评估和测试。

2. 压力测试:通过逐渐增加用户数量或者对系统进行异常操作的方式,对软件在极端负载情况下的表现进行测试和分析。

三、测试环境和工具在本次性能测试中,使用了以下的测试环境和工具:1. 硬件环境:- 操作系统:Windows Server 2016- 处理器:************************- 内存:16GB2. 软件环境:- 软件版本:软件版本号- 数据库:MySQL 8.0- Web服务器:Apache Tomcat 9.0- 浏览器:Google Chrome3. 测试工具:- 性能测试工具:Apache JMeter四、测试结果分析基于以上的测试方法和测试环境,我们得到了如下的性能测试结果。

1. 负载测试结果:在不同负载下的测试结果如下表所示:| 负载 | 平均响应时间(ms) | 通过率(%) ||------|----------------|------------|| 100 | 500 | 99.5 || 200 | 800 | 98.2 || 300 | 1200 | 95.6 || 400 | 1500 | 93.2 |根据上表可见,在不同负载下的平均响应时间逐渐增加,通过率逐渐下降。

这表明在高负载情况下,软件的性能表现较差,用户可能会遇到较长的等待时间和一定的操作延迟。

2. 压力测试结果:在极端负载情况下的测试结果如下图所示:[压力测试结果图示]从上图可以看出,在压力测试阶段出现了一些错误响应,并且在负载达到峰值时发生了系统崩溃的情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[转]性能测试数据分析经验我以为福建移动BOSS系统做的一个小规模的性能测试为例,谈谈我在数据分析中的一些经验。

测试用例,模式如下图。

一台Linux模拟Browser(简称browser)向主机SUN发 HTTP请求,SUN上启动Apache Web Server将请求交给FCGI程序。

FCGI程序作为TE节点CC1(简称fcgi)的客户进程发起TE 事务,经GT1名字服务向CC2 (简称svr_cc)发送一个分支,CC2 上服务嵌套经GT1名字服务向ACCTFZ(在HP上,简称svr_ac)发送一个分支。

测试3种压力情况,即10browser/10fcgi/5svr_cc服务进程/2svr_ac服务进程,20browser/20fcgi /10svr_cc服务进程/2svr_ac服务进程,30browser/20fcgi/10svr_cc服务进程/2svr_ac服务进程。

一.记录数据。

各个部分的应用程序在程序中关键地方记录时间,精确到微秒(毫秒也可以),并按一定格式写入日志文件。

这样可以并计算相同应用相临时间点之间的平均时间差(编程序分析日志文件或用excel导入)。

有了时间差,才能分析出整个系统性能的瓶颈(处理慢的环节)。

下面给出一个fcgi进程(也是TE客户端进程)的日志文件片段。

[19:21:32.628.512] begin_tpbegin[19:21:32.628.833] end_tpbegin[19:21:32.628.944] begin_tpsetbranch[19:21:32.629.053] end_tpsetbranch[19:21:32.629.487] begin_tpcall[19:21:37.102.996] end_tpcall[19:21:37.103.806] begin_tpcommit[19:21:37.432.253] end_tpcommit[19:21:40.405.345] begin_tpbegin[19:21:40.405.532] end_tpbegin[19:21:40.405.639] begin_tpsetbranch[19:21:40.405.742] end_tpsetbranch[19:21:40.406.175] begin_tpcall[19:21:46.732.888] end_tpcall[19:21:46.733.650] begin_tpcommit[19:21:46.832.538] end_tpcommit第一个字段是时间点时间,第二个字段是该时间点描述串,两个字段用空格间隔。

从这个文件可以看出,fcgi进程是循环处理业务的。

begin_tpbegin处开始一笔业务,begin_tpcall和end_tpcall之间是TE_tpcall()发起请求到收到应答的时间,begin_tpbegin和end_tpbegin之间是TE_tpcommit()发起提交到收到提交应答的时间。

而end_tpcommit到 begin_tpcall是fcgi进程从一笔业务结束到开始下一笔业务的时间,在这里也就是fcgi进程从Web Server获取HTTP请求的时间。

从这种格式的原始数据文件可以编程序计算出相临时间点之间的时间差,并可以计算出所有交易的平均时间差。

也可以用excel打开这种格式的原始数据文件,按空格分隔各列,读入excel后就可以使用excel提供的函数(入SEC()函数从hh:mm:ss时间格式换算成秒)和公式计算时间差和平均值,以及产生图表等等。

事实证明excel的功能是十分强大和方便的。

二.误差的判断和排除。

根据原始数据统计出的3种压力情况下fcgi各点时间如下。

10_10_5_2(ms) 20_20_10_2(ms) 30_20_10_2(ms)TPC(笔/秒) 2.16967 2.28571 2.21911fcgi receive fromfcgi 343 931 1676tpcall 4096 76148067tpcommit 176 204205total_fcgi 4615 87499731比较10_10_5_2和20_20_10_2,由于20_20_10_2在SUN主机上启动fcgi进程和svr_cc服务进程数都比 10_10_5_2多,SUN上的压力也较大,因此receive from fcgi的时间也较大是合理的。

比较20_20_10_2和30_20_10_2,2在SUN主机上,压力没有变化,仅是有HTTP 请求的排队(因为 browser进程比fcgi进程多),SUN上的压力应基本一样,而receive from fcgi的时间有较大的差别是不合理的。

考虑到在测30_20_10_2并发时有失败业务,怀疑可能由于browser上加给web Server过大造成失败。

这次性能测试主要测试系统正常(业务正常,压力情况是预计压力情况)时的系统情况,而在有业务失败时往往有些前端进程工作不正常,不能对后台造成预期的压力,这时取平均值可能会造成较大误差。

拿出其中任一个FCGI进程的原始数据,比较其在20_20_10_2和30_20_10_2两种压力下的receive from fcgi的时间数据,并用excel产生图表,入下图。

比较上面两个图表可以发现,20_20_10_2时各时间点基本都平均分布在1.5秒之内,仅有极少数几个点在1.5秒之外,且最大不超过4秒,由此可以认为对这些值取平均值的误差是可以接受的。

而30_20_10_2时在测试开始阶段(800笔之前)和结束阶段(4500笔之后)的时间点明显高于中间阶段的时间点,这应该是由于压力大时在测试开始阶段30个browser 进程没有很快把压力压向fcgi(压力小时也有这种情况,但时间会小的多),这样造成30个browser进程也不是在相近时间内结束,在结束阶段只有少数browser进程仍没有完成,这时的系统压力变小,fcgi进程等待HTTP请求时间也变长。

在30_20_10_2时这种非正常压力时间段很长并且数据差距很大,这时取全部时间段内的数值的平均值必然带来误差。

从上图可以看到,应该取800笔到4500之间系统稳定时的数据作为有效数据。

注意其他环节的进程的时间统计也需要按这一笔数范围作为有效数据。

经过修正后的全部数据见下表。

数据基本正常。

10_10_5_2(ms) 20_20_10_2(ms) 30_20_10_2(ms)TPC(笔/秒) 2.16967 2.285712.21911browser 4609 8750 13519fcgi receive fromfcgi 343 931 954tpcall 4096 76148575tpcommit 176 204202total_fcgi 4615 87499731svr_cc receive fromTE 4 16 18service_before_tpcall 1346 34014201tpcall 927 927598service_after_tpcall 38 4553total_svr_cc 2315 43894870waiting&receive fromTE 289 267 555service636 611 418经验:有时取平均值会有较大的误差,尤其是测试不完全正常的情况。

这时需要仔细分析原始数据,排除造成误差的数据,以系统稳定(正常)时的数据作为有效数据。

这里excel图表功能是一个非常好用的工具。

三.数据分析。

从业务流程中可以想象,fcgi端的TE_tpcall()时间似乎应该大致等于或略大于(网络传输时间等等)svr_cc上服务总的时间加上排队时间,而排队时间应该这样线性计算:前端并发数/服务端并发数*服务端服务单笔总的平均时间。

但上表的实际数据是TE_tpcall()时间小于svr_cc上服务总的时间!类似的,browser端的时间和fcgi上fcgi进程处理时间也有这种现象,只是相差很小。

这是因为实际情况不是我们想象的那样!SUN主机上即有客户端cc1(包括FCGI)节点也有服务端cc2节点的进程和TE核心运行。

如果cc1上只有一个fcgi进程(TE客户端进程)串行发起业务,我们可以认为fcgi端的TE_tpcall()时间似乎应该大致等于或略大于(网络传输时间等等)svr_cc上服务总的时间。

而当cc1上有多个fcgi进程(TE客户端进程)并发发起业务时,在处理一笔服务业务逻辑的时间段内,SUN上的 CPU时间还会分给其他客户进程以及TE核心(处理其他事务),这样在客户端并发情况下,每笔业务的服务端处理时间实际上包含一部分其他笔业务(客户进程和TE核心)的处理时间里。

而所有的业务都是如此,最终TE_tpcall()平均时间小于svr_cc上服务总的平均时间。

在cc1进程和cc2进程的关系中,由于他们在一台主机上,并且cc1进程不在少数,因此上述两个时间差别也较大。

而在browser和cc1的关系中,可以排除客户端进程的处理(因为在另外一台机器上)对服务端的影响,而只有TE核心并行处理多个交易对单笔服务处理时间的影响。

在测试环境下,服务业务处理时间是主要时间,TE处理时间相对很小,因此上述两个时间差别也非常小。

经验:在多前端并发情况下,前端等待服务端应答时间和服务端处理时间不是线性比例关系,会比预期线性比例关系算出的时间小。

具体差别和测试环境配置有关系。

客户端和服务端分开在不同的机器上会更接近线性比例关系。

四.平均值以外的东西。

对测试原始数据取平均值可以对整个系统的性能有一个了解,但有时只看平均值会遗漏一些同样有价值的东西。

取30_20_10_2测试中任一个svr_cc服务进程的原始数据,用excel读入,计算每笔service_before_tpcall时间(该服务的主要业务逻辑时间,也是整个开户业务中最耗时间的环节),并制作service_before_tpcall时间随笔数变化的图表,我们可以看到服务业务逻辑随数据库中记录数的变化规律,这显然是平均值无法体现的。

从图中可以看出,该业务逻辑时间的平均分布随笔数的增加而增加,也就是说,该业务逻辑时间和数据库中记录数有关(因为开户是插入操作,应该是该业务逻辑时间的平均分布随数据库记录数的增加而增加),在这种大型OLTP系统中,这种处理时间和数据库记录数有较大关系的现象是不好的。

一般是因为数据库索引设置问题,需要调整数据库索引。

至于最后几十笔的时间急剧减小,是因为在最后几十笔时有些前端应用已经完成,对于后台的压力减小,服务处理时间自然减小,并且越到后来运行的前端应用越少,服务处理时间也越少。

相关文档
最新文档