当前位置:   article > 正文

java应用 cpu占用过高问题分析及解决方法

java应用 cpu占用过高问题分析及解决方法

主要介绍了java应用cpu占用过高问题分析及解决方法,具有一定参考价值,需要的朋友可以参考下。 使用jstack分析java程序cpu占用率过高的问题

1,使用jps查找出java进程的pid,如14292

2,使用top -p 14292 -H观察该进程中所有线程的CPU占用
在这里插入图片描述

3,找出CPU消耗较多的线程id,如15844,将15844转换为16进制0x3de4,注意是小写哦

4,使用jstack 14292|grep -A 10 0x3de4来查询出具体的线程状态

在这里插入图片描述
通过这些线程状态便可基本定位问题之所在。
方法1
1.jps 获取Java进程的PID。
2.jstack pid >> java.txt 导出CPU占用高进程的线程栈。
3.top -H -p PID 查看对应进程的哪个线程占用CPU过高。
4.echo “obase=16; PID” | bc 将线程的PID转换为16进制,大写转换为小写。
5.在第二步导出的Java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。
6.分析负载高的线程栈都是什么业务操作。优化程序并处理问题。

方法2
1.使用top 定位到占用CPU高的进程PID top 通过ps aux | grep PID命令
2.获取线程信息,并找到占用CPU高的线程 ps -mp pid -o THREAD,tid,time | sort -rn
3.将需要的线程ID转换为16进制格式 printf “%x\n” tid
4.打印线程的堆栈信息 jstack pid |grep tid -A 30

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/207003
推荐阅读
相关标签
  

闽ICP备14008679号