性能分析(1)- Java 进程导致 CPU 使用率升高,问题怎么定位?

时间:2020-07-27 13:48:43   收藏:0   阅读:78

性能分析小案例系列,可以通过下面链接查看哦

https://www.cnblogs.com/poloyy/category/1814570.html

ps:这些分析小案例不能保证完全准确哦,是博主学习过程中的总结,仅做参考

 

前提

本机有一个很占用 CPU 的项目,放在了 Tomcat 下启动着

技术图片

 

如何定位

Jmeter 聚合报告

技术图片

 

排查网络是否有瓶颈

在 cmd ping 自己的服务器 ip 地址,看是否有很大的延时或丢包

技术图片

可以看到,没有丢包,而且延时也很低,证明网络没有问题

 

在服务器中,通过 top 查看是否有进程的用户态(us)过高

top

技术图片

 

通过 ps 命令确认具体是哪个进程

ps -aux | grep 2838

技术图片

很明显,就是我们 Java 程序所在的 Tomcat 进程啦

 

通过 top 查看 Java 进程的线程执行情况

2838 是进程 id 哦(pid)

top -Hp 2838

技术图片

 

将排在前面的线程 PID 转换成十六进制

printf "%x\n" 4808

技术图片

 

打印 Java 线程栈的信息

jstack 2838 | grep 12c8 -A30

 

技术图片

 

 
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!