Jmeter 性能压测 —— 分析定位2
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、iotopWindows的Resource Monitor等) 实时监控磁盘读写速度、等待时间等指标看是否存在过高延迟或读写速率过低的情况。一键获取完整项目代码分析一般磁盘瓶颈就是io高io高的话一般都是磁盘读写比较大导致。导致磁盘读写比较大可能以下几种原因导致读写的数据太大导致开发写的代码有问题可能带宽比较小导致sql语句写的不规范导致或者数据库连接数比较少导致也有可能是mysql配置参数问题如数据库缓存配置小导致不够用才一直进行磁盘的读写操作io包括磁盘IO和网络IO如果代码都没问题连接数都没问题mysql配置也正确但io还是很高的可以增加资源来解决后继————————————————版权声明本文为CSDN博主「测试界的彭于晏」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。原文链接https://blog.csdn.net/IT_LanTian/article/details/139835206