Jmeter 性能压测 —— 分析定位~

1、压测过程中TPS上不去?请求响应时间过长?

硬件资源不足:服务器的CPU、内存、磁盘等硬件资源不足,无法支撑高并发的请求处理。可以通过增加硬件资源或者优化服务器配置来提升TPS。
网络带宽限制:网络带宽不足,导致服务器无法及时响应请求。可以通过增加网络带宽或者优化网络传输方式来提升TPS。
数据库性能问题:数据库的读写性能不足,无法满足高并发的请求。可以通过优化数据库结构、索引、查询语句等方式来提升数据库性能。
代码逻辑问题:应用程序中存在性能瓶颈或者死循环等问题,导致请求处理速度变慢。可以通过代码优化来提升性能。也可能存在死锁或其他同步问题导致线程或进程阻塞,从而影响TPS。
压测/肉机配置问题:压测工具的配置(如压测肉机数量、压测脚本、场景设计等)可能影响TPS的表现。如压力机可能无法虚拟出预期的用户数,或者压测脚本和场景设计不合理,都会导致TPS无法提升。
负载均衡:负载均衡器配置不当可能导致请求分配不均,从而影响性能。检查负载均衡策略,优化配置。
依赖服务问题:应用程序依赖的第三方服务性能不稳定或者响应速度较慢,导致整体性能受限。可以通过替换或者优化第三方服务来提升性能。
中间件瓶颈:如消息队列堵塞,或有其他排队机制导致无法绕过队列进行高并发请求。
服务配置问题:系统的配置参数不合理,如线程池大小、连接池配置等,也会导致响应时间增。

2、资源利用率遇瓶颈分析

1)应用CPU瓶颈定位分析

定位:

导致应用cpu使用率高,并且使用核数超出机器的核数(如:申请的机器是4核16g,但核数最大显示6核),有可能是经常上下文切换频繁导致的(上下文切换:就是当前进程请求某种资源(如IO操作)而无法立即得到满足,需要切换到其他进程执行,等待资源就绪后再切换回来);
程序使用复杂的算法如加/解密,或代码bug导致。

分析:​​​​​​​

减少上下文切换频繁,可以让配置进程数与压测的机器核数一样(因为一个核就有一个进程),配置完成再查看
如果配置好重新压测,cpu使用率依旧还是高,可以看看io是否很高(io操作:读取和写入磁盘上的文件或数据),如果io高,那么有可能出现堵塞
如果压测的请求响应时间也比较大,io和cpu也很高,那么有可能是代码有问题,查看火焰图,查看代码耗时是否比较大,还有mysql监控是否有慢查询等,或者连接数比较少导致
如果火焰图代码部分,有耗时比较大并且有慢查询的,可以进行sql语句优化如果连接数比较少,设置大一点连接数去重新压,再观察性能情况如果这些都配置好都修改好,还是有问题,可以考虑加资源或者考虑该业务是否可以进行异步处理来提高性能。

2)应用内存瓶颈定位分析

定位:​​​​​​​

在压测过程中,可以借助使用监控工具实时监测服务的内存使用情况,定期获取内存快照,监控的主要指标包括内存占用率、内存使用量、内存泄漏等。

分析:​​​​​​​

查看内存在压测完成后,过一段时间是否有下降趋势。如果没有下降趋势,查看火焰图,查看代码属于哪个函数使用的内存占比大导致,然后优化应用/服务代码后重新压,压测完成再过一段时间查看内存是否有下降,对比优化前后内存使用情况,确认优化措施是否有效。

3)应用磁盘瓶颈定位分析

定位:​​​​​​​

监控磁盘I/O,可使用系统监控工具 (如Linux的iostat、iotop,Windows的Resource Monitor等) 实时监控磁盘读写速度、等待时间等指标,看是否存在过高延迟或读写速率过低的情况。

分析:​​​​​​​

一般磁盘瓶颈就是io高,io高的话一般都是磁盘读写比较大导致。导致磁盘读写比较大,可能以下几种原因导致:读写的数据太大导致;开发写的代码有问题;可能带宽比较小导致;
sql语句写的不规范导致,或者数据库连接数比较少导致,也有可能是mysql配置参数问题,如:数据库缓存配置小,导致不够用,才一直进行磁盘的读写操作(io包括磁盘IO和网络IO)如果代码都没问题,连接数都没问题,mysql配置也正确,但io还是很高的,可以增加资源来解决后继

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

 

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值