13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

死锁问题定位与分析

1、环境搭建

1)准备脚本,执行压测

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第1张图片

2)用jstack 打印日志

jstack 112759 >dead.log

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第2张图片

3)下载日志到本地

sz dead.log

2、问题定位

1)打开dead.log

搜索deadlock

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第3张图片

2)查看死锁的线程

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第4张图片

3)查看死锁位置

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第5张图片

3、问题分析

1)下载死锁的类文件

Sz CaseController.class

2)使用jd-gui工具,打开文件,根据提示路径找到死锁的代码

at cn.testfan.perf.beihe.pinter.http.CaseController.dead(CaseController.java:81)

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第6张图片

4、优化思路

1)避免嵌套枷锁

2)减少加锁的内容

5、线程阻塞和线程死锁的异同对比

1)相同点:
都是代码加锁导致

2)不同点:
阻塞只有一个锁,发生阻塞后只是性能慢,程序可运行;
死锁嵌套枷锁,发生死锁后服务器不相应请求,cpu资源利用率为0;

内存溢出案例

1、JVM内存参数配置

1)给项目的tomcat的catalina.sh添加配置参数

cd /usr/src/tomcat-pinter/bin

vi catalina.sh

在第二行添加以下配置:

JAVA_OPTS="-Xms512m -Xmx512m -Xmn256m -Xss1024k -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.196.130.103"

请添加图片描述

2)重启tomcat项目

杀死项目,重启tomcat

./startup.sh & tail -f ../logs/catalina.out

请添加图片描述

2、查看配置信息

1)查看JVM配置信息

Jmap -heap 72800

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第7张图片

2)通过jvisualvm图形化

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第8张图片

3、JVM监控

1)jstat命令监控JVM

Jstat –gcutil 72191 10

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第9张图片

2)jvisualvm图像监控

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第10张图片

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

一、Python编程入门到精通

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第11张图片

二、接口自动化项目实战

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第12张图片

三、Web自动化项目实战

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第13张图片

四、App自动化项目实战

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第14张图片

五、一线大厂简历

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第15张图片

六、测试开发DevOps体系

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第16张图片

七、常用自动化测试工具

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第17张图片

八、JMeter性能测试

13年测试老鸟,性能压测-死锁定位分析/内存溢出实例(超详细)_第18张图片

九、总结(尾部小惊喜)

只要你愿意为梦想付出努力,就没有什么能阻挡你前进的步伐。坚持不懈,勇往直前,你将会创造属于自己的辉煌人生!

任何时候,都不要放弃自己的梦想。只要你坚持不懈地追求,就一定能够取得成功,创造出属于自己的精彩人生!

人生短暂而珍贵,不要让自己留下任何遗憾。抓住机会,勇往直前,追求自己的梦想,创造属于自己的精彩人生!

你可能感兴趣的:(测试工程师,软件测试,性能测试,软件测试,软件测试工程师,接口测试,Jmeter接口测试,性能测试,压力测试,自动化测试)