JMeter性能问题

性能测试中TPS上不去的几种原因

性能测试中TPS上不去的几种原因_tps一直上不去-CSDN博客

  1. 网络带宽

  2. 连接池

  3. 垃圾回收机制

  4. 压测脚本

  5. 通信连接机制

  6. 数据库配置

  7. 硬件资源

  8. 压测机

  9. 业务逻辑

  10. 系统架构

CPU过高什么原因

性能问题分析-CPU偏高 - 西瓜汁拌面 - 博客园

  1. US CPU过高: 应用程序本身比较繁忙 现象:压测过程中,使用top命令查看系统资源占用情况,us cpu过高,超过50%以上。

    原因:UseCPU偏高说明应用程序本身比较繁忙

    排查手段:

    (1)使用top命令是哪个进程消耗CPU高

    (2)再找到CPU消耗高的线程:top -H -p 进程号

    (3)把线程号转换成16进制:printf "%x\n" 线程号

    (4)再用jstack命令分析这个线程是在干什么:jstack 进程号 | grep 16进制的线程号

    (5)通过JProfiler的CPU Views视图的层层分析,可以清楚的找到造成CPU高的原因

  2. Sys CPU过高 现象:压测过程中,使用top命令查看系统资源占用情况,sy cpu过高,超过50%以上。

    原因:内核调用,IO导致的,看IO是否使用频繁

    排查手段:

    (1)首先查看磁盘繁忙程度、磁盘的队列(nmon、sar),查看diskbusy,若diskbusy超过30%以上就可以称作IO繁忙;

    (2)IO繁忙的话,查看磁盘中IO的排序队列(iostat),看具体是read还是write繁忙,询问开发人员为什么读/写这么高,找出原因;

    读高:大量读取数据造成内存不够引起;

    写高:需要减少写的频率;

    (3)如果IO不繁忙,也就是磁盘没有问题,则使用strace查看系统内核调用情况,具体内核调用什么比较频繁;

内存溢出和内存泄露

内存泄漏和、内存溢出 (史上最全)_内存溢出和内存泄漏-CSDN博客

  1. 内存溢出:表示请求的内存大小超过系统最大的内存。如果操作超过系统内存大小的元素时,会抛出异常
  2. 内存泄漏:表示不再使用的元素没有被回收,而是被永久保留下来。会占用内存空间,大量的垃圾数据没有被回收时,会影响系统性能,浪费系统内存。

线程阻塞和线程死锁

死锁与线程阻塞解析-CSDN博客

  1. 线程阻塞问题排查流程

    a. 做线程dump

    b. 在dump文件中搜索关键字"BLOCK"、"TIME_WAITING",查看每种状态的count数量

    c. 按照上述关键字搜索,查看跟本系统有关的业务代码堆栈信息

  2. 出现死锁之后,我们关闭压力机并不能解决问题,这个和内存溢出是一样的,我们需要重启tomcat。

    死锁的解决思路

    1、避免嵌套加锁

    2、减少颗粒度

    3、增加超时处理

相关推荐
查拉图斯特拉面条2 天前
JMeter脚本中断排查:CSV配置导致线程提前终止
jmeter
lifewange5 天前
JMeter InfluxDB 后端监听器 全参数详解
jmeter
川石课堂软件测试6 天前
技术分享|JMeter接口与性能测试实战
数据库·功能测试·测试工具·jmeter·单元测试·postman·prometheus
弹简特6 天前
【精通JMeter接口测试】03-JMeter 接口测试持续集成踩坑记:jtl 转 Allure 报告、Jenkins 定时执行、CSP 样式劫持全解决
jmeter·自动化·jenkins
晨+燕6 天前
JMeter中如何定位到某个具体的类来自于哪个jar包
python·jmeter·jar
_周游7 天前
【软件测试】使用JMeter进行压力测试_2
jmeter·压力测试
你这个想法好9 天前
深度解析 JMeter 性能测试:从插件安装到,“阶梯线程组”下,“仅一次控制器”失效的解决方案
jmeter
_周游9 天前
【软件测试】使用JMeter进行压力测试_1
测试工具·jmeter·压力测试
U盘失踪了10 天前
JMeter 线程组
jmeter