性能测试基础与方案考虑

1、性能测试简介

     性能测试就是被测系统,在一定的负载在运行,监控系统的各项指标,是否符合需求(响应时间,tps,内存cpu等),如果不符合,说明存在瓶颈。

     目的:识别系统的弱点,评估系统的能力,发现系统的瓶颈,提高系统可靠性能和稳定性。

一些概念:每秒事务数:每秒系统处理事务(失败/通过/停止)的数量;                                                                                                     响应时间:从发送一个请求开始计时到接收到从服务器端返回的相应结束的耗时                                                                       

   并发用户数:线程数                                                                                                                                                       

   系统负载:系统支持的最大并发用户数                                                                                                                                 

吞吐率:系统每秒处理的流量,单位:Kb、Mb

2、性能测试的分类:

3、什么场景需要性能测试:

4、性能测试流程

系统架构和业务逻辑调研——测试计划、测试数据准备——测试环境准备(线下OR线上)——测试结果报告分析——修改调优——再次压测

5、压测计划

被测系统定义:系统介绍,为何执行压测,针对哪些系统压测等                                                                                             

性能测试指标:系统的负载能力,响应时间,吞吐率,稳定性等                                                                                             

环境信息:服务器CPU,内存等硬件信息,数据库,缓存情况统计                                                                                           

压测信息:人力成本,压测策略,压测时间,影响服务

6、压测方案

模块

解释

说明

压测目标

Tps,响应时间(平均响应时间,90%响应时间等)

1. 通过历史信息分析
2.  上游系统流量
3.  相似位置的服务流量

链路分析

分析请求链路以及响应时间

1.  清晰压测边界
2.  制定mock方案
3.  清晰流量分布

场景分析

根据实际业务场景进行压测策略的指定

 单场景,混合场景,压力策略

数据分析

通过请求,响应数据分析,制定有效的压测数据

1. 请求的类型,比例
2. 下游返回结果的有效率
3. 缓存数据是否要做预热,量是多少

监控报警

线上全面监控和报警,保证线上压测的有效措施

1. 报警指标梳理和确认
2. 服务器指标, jvm 参数指标监控
3. 错误率,异常信息等监控

压测分析

针对压测结果,做梳理分析,并指定

1. 报警异常产生原因
2. 系统瓶颈在哪儿
3. 如何改进以及完成时间点,后续压测计划

7、线上针对高TPS的方案

概念

触发原因

触发场景

处理方案

熔断

某个下游服务不可用

当失败的调用到一定阈值,如缺省是5秒内20次调用失败,就会启动熔断机制

中断下游服务调用,但是每隔一段时间发请求检查,如果恢复则取消熔断

降级

系统整体响应慢或某个非核心服务响应慢

访问量剧增、服务响应慢或非核心服务影响到核心流程的性能

进行自动降级或者通过配置实现人工干预

 

限流

上游流量突增,影响系统线上稳定性

流量触发限流设置

执行限流,拒绝访问或返回兜底数据

8、压测的瓶颈分析

瓶颈现象

问题方向

优化方向

TPS波动较大

一般有网络波动、其他服务资源竞争以及垃圾回收问题

1. 网络波动问题,可以让运维同事协助解决
2. 资源竞争问题:通过命令监控和服务梳理,找出压测时正在运行的其他服务,沟通协调停止
3. 垃圾回收问题:通过 GC 文件分析,如果发现有频繁的 FGC ,调整 JVM 的堆内存参数

高并发下大量报错

常见的原因有短连接导致的端口被完全占用以及线程池最大线程数配置较小及超时时间较短导致

1. 短连接问题:释放 TIME_WAIT scoket ,提高客户端的链接超时限制 ,增大端口范围等
2. 线程池问题:修改服务节点配置文件中的最大线程数,超时时间等

负载不均衡

可能Ningxdsf等中间平台分配策有问题

 调整nginx/dsf 等中间平台分发策略

线程数不断增加,TPS上不去,CPU使用率低

常见的原因有:SQL没有创建索引/SQL语句待优化,高并发时出现锁等待

1. 建索引,优化 sql ,库的读写分离设计
2. 锁机制优化: 必要不加锁; 减少跟锁无关的操作,降低时间间隔;读写锁分离等

线程数上不去,响应时间很快,服务器资源充足

或为压测资源不足

1. 检查压测机的资源占用

前端优化

一般前端性能不会通过并发压测的

1.前端优化以 减少请求次数
2.前端 减少请求数据的大小,比如有些图片做压缩处理。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值