首页 > 其他分享 >性能测试响应很慢怎么排查?

性能测试响应很慢怎么排查?

时间:2023-11-09 16:33:56浏览次数:46  
标签:服务 响应 压测 性能 问题 排查 调优 线程 测试

转:https://blog.csdn.net/2301_77709772/article/details/133777907

大多数的性能测试工作人员分为以下三个阶段:

1、出了问题看资源,资源占用如果很高,报以窃喜的心态,恩,发现了,原理是资源瓶颈。

2、资源没有出现瓶颈,通过一些技术手段分析,发现是组件的配置文件有问题,例如:server的并发策略有问题,带宽有问题,找到了线路短板性能中的短板,到了这个阶段在我看来是比较牛的测试。

3、以上均无问题的情况下,考虑数据结构和算法

我个人接触到的来说,现在大多数的人员都是在仰望第二阶段,摸索第三阶段,希望从代码级发现出性能的问题,进行问题的发现和解决,也符合我们的bug越早发现修复的成本越低的理论。同时,也是一名性能测试工程师高薪的象征。

 

性能测试调优哪些方面入手,如下几点:

1、TPS波动较大

原因解析:出现TPS波动较大问题的原因一般有网络波动、其他服务资源竞争以及垃圾回收问题这三种。

性能测试环境一般都是在内网或者压测机和服务在同一网段,可通过监控网络的出入流量来排查;

其他服务资源竞争也可能造成这一问题,可以通过Top命令或服务梳理方式来排查在压测时是否有其他服务运行导致资源竞争;

调优方案:网络波动问题,可以让运维同事协助解决(比如切换网段或选择内网压测),或者等到网络较为稳定时候进行压测验证;

资源竞争问题:通过命令监控和服务梳理,找出压测时正在运行的其他服务,通过沟通协调停止该服务(或者换个没资源竞争的服务节点重新压测也可以);

垃圾回收问题:通过GC文件分析,如果发现有频繁的FGC,可以通过修改JVM的堆内存参数Xmx,然后再次压测验证(Xmx最大值不要超过服务节点内存的50%!)

2、高并发下大量报错

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

调优方案:

短连接问题:修改服务节点的tcp_tw_reuse参数为1,释放TIME_WAIT scoket用于新的连接;

线程池问题:修改服务节点中容器的server.xml文件中的配置参数。

3、集群类系统,各服务节点负载不均衡

原因解析:出现这类问题的原因一般是SLB服务设置了会话保持,会导致请求只分发到其中一个节点。

调优方案:可通过修改SLB服务(F5/HA/Nginx)的会话保持参数为None,然后再次压测验证;

4、并发数不断增加,TPS上不去,CPU使用率较低

原因解析:SQL没有创建索引/SQL语句筛选条件不明确、代码中设有同步锁,高并发时出现锁等待;

调优方案:

SQL问题:没有索引就创建索引,SQL语句筛选条件不明确就优化SQL和业务逻辑;

同步锁问题:是否去掉同步锁,有时候不仅仅是技术问题,还涉及到业务逻辑的各种判断,是否去掉同步锁,建议和开发产品同事沟通确认;

5、压测过程中TPS不断下降,CPU使用率不断降低

原因解析:出现这种问题的原因可能是因为线程block导致,当然不排除其他可能;

调优方案:如果是线程阻塞问题,修改线程策略,然后重新验证即可;

总结:性能测试调优应该注意的要点:
要点 1:在应用系统的设计开发过程中,应始终把性能放在考虑的范围内。
要点 2:确定清晰明确的性能调优目标是关键。
要点 3:必须保证性能调优后的程序运行正确。
要点 4:系统的性能更大程度上取决于良好的设计,调优技巧只是一个辅助手段。
要点 5:性能调优过程是迭代渐进的过程,每一次调优的结果都要反馈到后续的代码开发中去。
要点 6:性能调优不能以牺牲代码的可读性和可维护性为代码。

 

标签:服务,响应,压测,性能,问题,排查,调优,线程,测试
From: https://www.cnblogs.com/yanghj010/p/17822134.html

相关文章

  • js怎么实现对某个网址进行多线程get访问,实现压力测试效果
    在JavaScript中,实际上没有传统意义上的"多线程",但是我们可以使用WebWorkers来模拟多线程行为。WebWorkers允许您运行JavaScript操作在后台线程,不会影响主线程的性能。然而,WebWorkers更多用于在浏览器端执行耗时的计算任务,并不适用于执行HTTP请求。 对于Node.js环境,我们可以......
  • VC 6 编译时一直处于Linking...状态,无响应
    我安装上VC后,一编译程序,要么一直处于编译状态,要么处于linking...状态,VC就像死了一样。不管英文版,中文版,装没装补丁都那样。 有时候VC经常出现这样的情况,运行的时候,显示linking无法中止,关也关不了;点stopbuild也不行只好CTRL+ALT+DEL关掉。 应该是VC的BUG。。。。。我有......
  • 软件测试技术,软件项目管理 实验时间安排 2009春季
     2009年春季十一周课表时间星期一星期二星期三星期四星期五时间上1   计082  8:00-8:502    9:00-9:503     10:10-11:004     11:10-12:00下5      6      7 项目软061-062计082 计06314:10-15:008  15:10-16:009 答疑曲江 16:10-17:0010......
  • 软件测试相关书籍
    软件测试相关书籍:.NET测试实战技术大全:测试基础、流行工具、典型案例http://www.ptpress.com.cn/Book.aspx?id=11139VisualStudio2005TeamSystem软件测试专家教程.NET软件测试指南http://www.golden-book.com/booksinfo/77/777536.html.NET软件测试自动化之道......
  • Load Test Statistics 负载测试统计(负载测试计数器)
    LoadTestStatisticsLoadTestercollectsanextensivemeasurementsduringaloadtest.Thisdataiscollectedinsamples.Eachsamplehasmultiplemeasurementsassociatedwithit.Dependingonthemeasurementtype,somemeasurementsmaynotbaapplicable......
  • 用户信息授权报错“无效的AppID参数”问题排查解决过程
    今天记一个支付宝报错“无效的AppID参数”的问题排查解决过程,希望可以帮到大家。报错产生今天在测试支付宝用户信息授权换取授权访问令牌的时候,遇到了一个报错:“无效的AppID参数”,本来以为是个简单的问题,结果还是花了一点时间去找原因,找到最后发现是自己脑子瓦特了=。=报错......
  • 用户信息授权报错“无效的AppID参数”问题排查解决过程
    今天记一个支付宝报错“无效的AppID参数”的问题排查解决过程,希望可以帮到大家。报错产生今天在测试支付宝用户信息授权换取授权访问令牌的时候,遇到了一个报错:“无效的AppID参数”,本来以为是个简单的问题,结果还是花了一点时间去找原因,找到最后发现是自己脑子瓦特了=。=报错截图如......
  • 基于i.MX6ULL的掉电检测设计与软件测试
    基于i.MX6ULL平台设计实现掉电检测功能,首先选择一路IO,利用IO电平变化触发中断,在编写驱动时捕获该路GPIO的中断,然后在中断响应函数中发送信号通知应用程序掉电发生了。图1.1掉电信号IO       驱动代码:#include<linux/module.h>#include<linux/init.h>#include<linux/......
  • 2023码尚教育接口自动化框架的实现源码分享pytest+allure+jenkins几乎零代码少量的代
    本框架适合对Pytest有大概认识(比如看完X站3天课程的水平),职场新人没有雄厚的资本去参加专业的培训、功能测试转自动化测试、开发转测试的小伙伴们。首先介绍下这个框架的使用,看看是不是你所需要的。第一步、添加模块PY文件,编写接口代码。classTestJuhe: #upwei:fanfanzb2023......
  • mysql常见问题及排查步骤
    问题一:数据库连接串测试报错:Couldnotcreateconnectiontodatabaseserver.504错误遇到数据库问题的通用排查步骤确定数据库没有挂确定远程可以连接(前两个可以通过在本地连接验证)以上都OK,大概率服务器ip被限制访问,如果不是人为限制,在可以访问的服务器连上对应数据库,执行......