java CPU异常高 - jstack
【现象】:java cpu异常高
【猜测】:可能java代码异常
【实操】:登录linux服务器
1.执行top命令,查看CPU靠前的进程:如pid=2474
top
2.查看当前进程下,各线程的使用情况,在线程列表中找出time时间比较长的线程的pid,如pid=123456
ps -mp 2474 -o THREAD,tid,time
3.将123456转化为16进制,为1e240
printf "%x\n" 123456
4.打印线程的堆栈信息,就可以准确定位到是哪几行代码有问题
jstack 2474 |grep 0x1e240 -A 30
注:jstack jvm工具,查看当前线程的运行情况
【分析】:分析java代码是否真有问题
【测试】:对该段代码进行详细测试,并优化决绝问题
当遇到Java应用程序CPU使用率异常升高时,可以通过`top`命令找到占用CPU资源的进程,再利用`ps`和`printf`获取线程PID,接着使用`jstack`工具分析线程堆栈,定位到具体代码行。这有助于识别和解决可能的死循环、资源泄露等代码问题。通过对疑似问题代码进行测试和优化,可以有效降低CPU使用率。
4073

被折叠的 条评论
为什么被折叠?



