JMeter性能测试工作中遇到的问题及剖析,你遇到了几个?

JMeter性能测试工作中遇到的问题及剖析,你遇到了几个?

常见性能测试剖析

1、系统资源问题
CPU/内存/磁盘/网络...

2、语言/代码:
JVM/PHP-fpm  ...etc

3、框架问题:
Sprint Boot /百度RPC...

服务单点性能问题

1、CPU负载
2、内存泄漏
3、磁盘IO
4、网络IO
5、JAVA Full GC
6、TCP连接数
7、工作线程打满
.....

案例1:某次压力测试,服务端CPU飙升打满,CPU计算型

TOP -H -p pid
Pstack pid
Trace -p pid

代码逻辑问题:
同步解析接口,使用正则方式匹配返回内容,但是由于返回内容过大,导致CPU飙升。正则,大数据的JSON序列化/反序列化

另外死锁问题也可以通过类似的方式调优
CPU不高,但服务响应耗时高,请求堆积;

案例2:某次压力测试,系统CPU等指标正常,但是偶发间断时间请求耗时特别高

JVM GC问题:
Full GC Stop the world
减少Full GC时间,老年代降低

案例3:某次压力测试,php程序,php-fpm内存增长,OOM导致服务挂掉

排查原因,使用了第三方so插件做JSON解析,但是第三方so插件有内存泄漏问题。

Max-request,fast-cgi 固定请求数后重启

案例4:某次压测,CPU/内存/网络 等指标表现良好,但响应耗时非常久

监控查看磁盘IO异常,追查发现日志级别设置为Debug,大量日志打印拖累性能

同步日志,可能是潜在的性能杀手

案例5:某次压力测试,CUP/内存/网络/磁盘 所有指标都表现良好,但是响应时间非常久

查看Nginx 日志,发现 request_time较长,但是 upstream_response_time 实际较短。

案例6:某次压测,同样的并发TPS,但是前期性能良好,后期数据库CPU飙升

压测会长生大量级的数据,数据增长会带来性能的损耗

压测数据不合理,导致统一设备关联多个用户,服务端不做限制的in查询

不合理分页,未做椰树limit,导致将数据库新增数据全部查询

案例7:某次稳定性测试,大并发TPS,前期性能良好,分片缓存,在模拟缓存单点失效大量的数据库穿透

缓存不合理的分片策略,使用分除模式。导致大量缓存统一时间失效。

不合理的负载均衡算法也会有类似的问题。

一致性的HASH解决此缓存问题

案例8:某次稳定性测试,如果HTTP入口流量仅百QPS,但下游RPC服务打卦

商户列表,for循环调用下游解决,导致请求数百倍扩大。

使用Batch接口减轻压力,Batch接口可能会带来功能隐患
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100683.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 重大版四年级上册信息技术教案_走进计算机教案

    重大版四年级上册信息技术教案_走进计算机教案辽师大版信息技术四下第一单元第6课《最炫民族风》教案3.docx文档编号:536849文档页数:6上传时间:2019-01-13文档级别:文档类型:docx文档大小:13.25KB第6课最炫民族风教学目标设计知识与技能目标通过学习使学生掌握word里“页面设置”里“页边距”和“纸张”的使用和操作方法。在掌握以前学习有关知识的基础上,能够较灵活的应用该设置对页面进行调…

  • java 反编译器_代码反编译到数据库

    java 反编译器_代码反编译到数据库xjad反编译工具下载使用反编译时把class文件直接拖拽至工具内即可,如果反编译结果不对时把class文件重新去拿原始的不要编辑打开,或者放在一个文件夹内在试。反编译后的代码没有注释、注解等,反正能用得细心看看调整。点击下载工具http://a.xzfile.com/down2/XJadfanbinayi_downcc.zip…

  • Netty中ByteBuf的copy、duplicate、slice方法对比「建议收藏」

    Netty中ByteBuf的copy、duplicate、slice方法对比「建议收藏」敬请期待~

  • 【转载】视频跟踪的研究

    首先,什么是视频跟踪?基于视频的运动目标跟踪技术作为计算机视觉领域的核心研究课题之一, 主要目的是模仿生理视觉系统的运动感知功能,通过对摄像头捕捉到的图像序列进行分析,计算出运动目标在每一帧图像中的二维坐标位置;然后,根据运动目标相关的特征值,将图像序列中连续帧间的同一运动目标关联起来,得到每帧图像中目标的运动参数以及相邻帧图像间运动目标的对应关系,从而得到各个运动目标完整的运动轨迹,即在

  • MyBatisCodeHelperPro插件使用[通俗易懂]

    MyBatisCodeHelperPro插件使用[通俗易懂]一、下载MyBatisCodeHelperPro插件下载地址:MyBatisCodeHelperPro二、配置数据库用的tinyInt或者smallInt生成java类型是byte和short两种类型。在java代码里面操作byte和short类型比较麻烦,经常需要强制转换,下面是设置使用Integer来替代byte和short还有使用Java8的日期时间类型三、使用根据实体类生成建表sql按alt+insert生成的SQL语句:生成好了建表

  • 一阶惯性环节matlab编程_matlab一阶惯性环节

    一阶惯性环节matlab编程_matlab一阶惯性环节该楼层疑似违规已被系统折叠隐藏此楼查看此楼我照着网上的程序自己改出来的程序是这样的clc;clear;ts=0.001;%采样时间sys=tf(-53,[19926,100],’ioDelay’,540);%tf是传递函数,用来实现G(s);在自动控制领域经常用到,dsys=c2d(sys,ts,’z’);%把控制函数离散化,转化…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号