【性能测试】CPU问题定位与分析+线程阻塞案例分析,一篇直接上高速...


前言

CPU问题定位与分析

1、环境准备

1)准备压测脚本

请添加图片描述

2)上传到压测服务器

在这里插入图片描述

2、现象分析

1)业务指标分析

请添加图片描述

2)系统资源分析

请添加图片描述

3、问题定位

1)打开jprofiler查看CPU views—Call Tree/Host Spots,查看占用cpu问题最高的函数

在这里插入图片描述

在这里插入图片描述

2)下载代码,用反编译工具查看,使用了谷歌的序列化gjson导致cpu使用率高

在这里插入图片描述

4、优化问题

1)修改序列化组件为阿里的fastjson

在这里插入图片描述

2)优化效果展示

请添加图片描述

请添加图片描述

线程阻塞案例分析

1、Jstack打印快照

1)Jmeter运行压测脚本

请添加图片描述

2)用jstack打印快照,下载到本地

jstack 112759 > log1.txt
jstack 112759 > log2.txt
jstack 112759 > log3.txt

请添加图片描述

在这里插入图片描述

3)在本地搜索是否有blocked关键字

在这里插入图片描述

2、分析代码

1)下载源码文件

cn.testfan.perf.beihe.pinter.http.CaseController.block(CaseController.java:60)

根据提示,找到casecontrokker的路径

/usr/src/tomcat-pinter/webapps/pinter/WEB-INF/classes/cn/testfan/perf/beihe/pinter/http

请添加图片描述

2)分析代码出错地方

打开jd-gui查看源码60行

发现没有加锁的表示:synchronized,但是此行调用了loger方法

在这里插入图片描述

3)去下载log4j的文件

路径:/usr/src/tomcat-pinter/webapps/pinter/WEB-INF/lib

请添加图片描述

下载这个文件到本地

根据提示路径:

at org.apache.log4j.Category.callAppenders(Category.java:204)

在这里插入图片描述

3、优化代码

调整log4j日志等级

1)找到log4j日志配置文件

路径:/usr/src/tomcat-pinter/webapps/pinter/WEB-INF/classes

请添加图片描述

2)调整日志等级

vi log4j.properties

提升日志等级为 ERROR

请添加图片描述

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

即使在最黑暗的夜晚,也别忘记你内心燃烧的火光。只要有坚定的信念和不屈的决心,没有什么能阻挡你的前行之路。加油!

只要心中有梦,万事皆有可能。每一次挑战都是一次成长的机会,相信自己,勇敢追梦,你的未来无可限量。

生命短暂,不要浪费时间去担忧未知的明天,而是要充分利用今天去实现梦想。每一个小步都是成功的积累,坚持下去,你一定能够达到目标。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值