排查步骤如下:
1. 执行 top 命令,在linux系统上显示系统各个进程的资源占用状态,找到占用率很高的进程ID 1024
2. 执行 top -p 1024 -H 命令,查看当前进程下的所有线程信息,找到占用率很高的线程ID 2048,将ID转换成16进制得到800
3. 执行 jdstack 1024> thread_stack.log 将进程的堆栈信息写入到文件中
4. 在thread_stack.log根据找到800对应的堆栈信息,根据堆栈信息定位到代码位置
5. 如果线程为GC线程,使用 jmap -histo> jmap.log 输出java堆中对象的统计信息,可能不停创建大对象,导致频繁GC导致CPU占用很高。
参考:
1. https://blog.csdn.net/xinqing5130/article/details/115330920
2. https://blog.csdn.net/qq_34944965/article/details/81107419?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&dist_request_id=1619598633876_23403&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
3. https://www.cnblogs.com/youxin/p/11229071.html