性能概述及技术指南

性能测试目的:观察系统在一个给定的环境和场景中的性能表现是否与预期目标一致,评判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性能。

程序性能体现

  • 执行速度:程序反应是否迅速,响应时间是否短
  • 内存分配:内存分配是否短,是否存在过多消耗内存或者内存泄露
  • 启动时间:从启动到可以正常处理业务所需时间
  • 负载承受能力:当系统压力上升时,系统执行速度、响应时间上升曲线是否平缓

性能的参考指标

  • 执行时间:一段代码从开始运行到结束所需要的是时间
  • CPU时间:函数或者线程占用cpu时间
  • 内存分配:程序在运行中占用的内存空间
  • 磁盘吞吐量:磁盘IO使用
  • 网络吞吐量:网络使用
  • 响应时间:系统对某用户行为或事件作出相应的时间。时间越算,性能越强。

最有可能成为瓶颈的计算资源

  • 磁盘IO:磁盘读写速度比内存要慢,如果程序运行中需要等待磁盘IO完成,那么IO操作会成为瓶颈
  • 网络操作:网络环境具有极大的不确定性,若对数据没有进行处理,此处可能成为瓶颈
  • CPU:对计算资源要求较高的应用,长时间不间断使用CPU,会对CPU资源造成争抢,导致CPU成为瓶颈
  • 异常:对于JAVA程序,异常捕获处理也非常费资源,若高频次进行异常处理,则整体性能就会有下降
  • 数据库:海量数据读写操作非常耗时,应用程序可能需要等待数据库操作完成或者返回请求结果集,缓慢同步操作会成为瓶颈
  • 锁竞争:锁竞争会增加线程上下文切换的开销,这些开销与应用程序无关,但是会占用大量CPU资源,成为瓶颈
  • 内存:程序设计不合理,对内存使用不当,高频次的进行内存交换和扫描,使内存可能成为瓶颈

性能优化步骤

响应时间


C1:用户请求发出前在客户端需要完成的预处理所需要的时间;

C2:客户端收到服务器返回的响应后,对数据进行处理并呈现所需要的时间;

A1:Web/App Server 对请求进行处理所需要的时间;

A2:DB Server 对请求进行处理所需的时间;

A3:Web/App Server 对 DB Server 返回的结果进行处理所需的时间;

N1:请求由客户端发出并达到Web/App Server 所需要的时间;

N2:如果需要进行数据库相关的操作,由Web/App Server 将请求发送至DB Server 所需要的时间;

N3:DB Server 完成处理并将结果返回Web/App Server 所需的时间;

N4:Web/App Server 完成处理并将结果返回给客户端所需的时间;

从用户的角度来看,响应时间=(C1+C2)+(A1+A2+A3)+(N1+N2+N3+N4);但是从系统的角度来看,响应时间只包括(A1+A2+A3)+(N1+N2+N3+N4)。

并发用户数 ≠ 每秒请求数

当在性能测试工具或者脚本中设置了100并发用户数后,并不意味一定会有每秒100个请求发给服务器。事实上,对于一个虚拟用户来说,每秒发出多少请求只跟服务器返回响应的速度有关。如果虚拟用户在0.5秒内就收到了响应,那么它会立即发出第二个请求;而如果要一直等待3秒才能得到响应,它将会一直等到收到响应后才发出第二个请求。也就是说,并发用户数的设置只是保证服务器在任一时刻都有100个请求需要处理,而并不一定是保证每秒中发送100个请求给服务器。所以,只有当响应时间恰好是1秒时,并发用户数才会等于每秒请求数;否则,每秒请求数可能大于并发用户数或小于并发用户数。

环境需求

  • 测试环境架构与生产环境架构完全相同
  • 测试环境机型与生产环境机型尽量相同,云化的资源确保是同规格ECS或者容器
  • 测试环境软件版本与生产环境软件版本完全相同,版本主要包括:操作系统、中间件相关、数据库、应用等
  • 测试环境参数配置与生产环境完全相同,参数主要包括:操作系统参数、中间件参数、数据库参数、应用参数
  • 测试环境基础数据量与生产环境基础数据量需在同一个数量级上。
  • 只能减少测试环境机器台数,并且需要同比例缩小,而不能只减少某一层的机器台数。
  • 理想的测试环境配置是生产环境的1/2,1/4。

测试指标

测试指标一般分为业务指标、资源指标、应用指标、前端指标。

  • 业务指标:如:并发用户数、TPS(每妙处理请求数)、成功率、响应时间。
    业务响应时间(Response Time):一般情况下,不同系统的业务响应时间期望值是不同的,具体业务具体分析
    业务处理能力(Transaction Per Second):这个指标是衡量系统的处理能力的一个非常重要的指标
    成功率:这个指标是衡量系统处于压力下,业务的成功率,一般业界成功率要大于99.6%。

  • 资源指标:如:CPU资源利用率、内存利用率、I/O、内核参数(信号量、打开文件数)等。

  • 应用指标:如:空闲线程数、数据库连接数、GC/FULL GC次数、函数耗时等。

  • 前端指标:如:页面加载时间,网络时间(DNS,连接时间、传输时间等)。

压测场景选取

一般是选取业务量高的、经常使用的、有风险的、未来有增长趋势的业务作为系统的典型业务。已经上线的系统可以通过高峰时段历史业务量和生产问题性能来评估,对于即将上线的系统可以通过调研和单交易资源消耗的结果来评估。
数据尽量参数化、数据量尽可能的多。

转载于:https://www.cnblogs.com/aresxin/p/p75435423.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Drools是一个用于规则引擎的开源业务流程管理系统。它能够对规则进行建模、存储、查询和执行,通过规则引擎来实现流程控制和决策支持。Drools 7.25是Drools的最新版本,其文档已经推出中文版,同时也有Drools技术指南。 Drools技术指南是一本详细介绍Drools规则引擎使用的文档。它包含了Drools的体系结构、规则语言、DSL、规则文件和决策表的写法,规则引擎原理和调试技巧等方面的内容。此外,Drools技术指南也介绍了如何与Spring、Hibernate、Camel等其他技术和框架进行集成,以及如何使用Drools进行规则引擎的搭建和开发。 通过Drools技术指南,用户可以了解如何使用Drools规则引擎来实现业务流程管理、决策制定和业务规则的自动化执行,从而提高生产力和业务效率。同时,Drools技术指南也为开发人员和系统管理员提供了快速入门和深入学习Drools规则引擎的指南。无论是初学者还是有经验的开发人员,都能够从Drools技术指南中找到自己需要的内容和解决方案。 ### 回答2: Drools 是一个基于 Java 的规则引擎,它主要用于业务流程管理和事件处理。Drools 7.25 版本中的中文文档 Drools 技术指南是一个深入学习 Drools 的权威指南。这本书在理论和实践方面都非常丰富,可以帮助开发人员在使用 Drools 时深入了解规则引擎的内部机制和实现方法。该书主要分为三个部分: 第一部分介绍了 Drools 的基础知识。它包括规则引擎的概述、Drools 知识库的构建、规则的编写和调试以及相关的工具和插件。该部分通过简单的例子和代码来阐述 Drools 的各种概念和功能,帮助读者快速入门。 第二部分是关于规则的设计和优化。该部分主要重点在于如何设计和组织规则应用,以实现更好的性能和可维护性。该部分还介绍了如何使用 Drools 的高级功能,如集成规则引擎到企业应用程序中和将规则应用于大数据处理中。 第三部分是关于实践案例的介绍和分析。该部分通过实际的案例来展示如何使用 Drools 来解决实际的业务问题。该部分囊括了各种类型的案例,如物流管理、金融风控、医疗诊断等,为读者提供了一个全面的 Drools 应用实践参考。 总之,Drools 7.25 中文文档 Drools 技术指南是一本非常优秀的规则引擎学习和应用指南,它不仅适用于初学者,也适用于有一定经验的工程师和开发人员。这本书将帮助你深入了解 Drools 的内部机制和实践应用,从而更好地应对复杂的业务场景和问题。 ### 回答3: Drools是一种开源的规则引擎,可以用于构建商业规则、决策管理和复杂的业务流程中的规则引擎。Drools7.25中文文档和Drools技术指南是学习和使用Drools7.25规则引擎的重要材料。 这份文档详细地介绍了Drools7.25的安装、配置、使用和开发以及如何使用Drools7.25实现各种业务需求,如智能信息推荐系统、规则引擎规则编辑、策略设计和自动化执行等。文档的主要内容包括规则引擎基础知识、Drools规则编写、如何调试和测试规则、规则引擎应用程序开发等方面的知识。它提供了丰富的代码示例和详细的解释,可以帮助使用者快速学习和掌握Drools规则引擎的用法。 Drools技术指南则进一步深入了解Drools规则引擎的高级用法和开发技巧。该指南主要内容包括Drools语言、Drools规则流程、相关API、Drools领域特定语言以及如何优化性能等方面的内容,以及如何使用Drools规则引擎提高业务流程和规则引擎的效率和准确性。该指南提供了更加深入的技术指导和实践经验,适合有一定Drools规则引擎开发经验的开发者进行深入学习和研究。 总之,Drools7.25中文文档和Drools技术指南对于学习和开发Drools规则引擎都是非常有用的资料,对于需要使用规则引擎的公司和开发者来说,这两份文档是不可或缺的参考材料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值