linux 下排查 Cpu 异常

1. 准备

2. linux 下运行
  执行如下命令,生成 class 文件

[luozhihong@localhost java]$ javap CpuTest.java
1
  执行 java 命令,运行程序

[luozhihong@localhost java]$ java CpuTest
1
3. 问题排查
执行 top 命令,查看 cpu 异常的进程
[luozhihong@localhost ~]$ top

  可以看出 PID = 3221 的进程,cpu 消耗达 98.7% 以上,是由 java 命令开启的

执行 top -Hp pid,查看进程中哪个线程消耗 cpu 严重
[luozhihong@localhost ~]$ top -Hp 3221

  从结果可以看出,进程中有8个线程占用 cpu 异常。这里我们找其中的一个线程分析即可

执行 printf “0x%x\n”线程PID
[luozhihong@localhost ~]$ printf "0x%x\n"3231

  将线程PID转换为 16进制,为后面查找 jstack 日志做准备

执行 jstack 进程PID|vim + /16进制线程PID - ,打印线程堆栈信息
[luozhihong@localhost ~]$ jstack 3221|vim +/0x0 -
1
  截取输出部分输出结果如下:

Thread-7" #15 prio=5 os_prio=0 tid=0x00007f7d6c0cb800 nid=0xca6 runnable [0x00007f7d70286000]
java.lang.Thread.State: RUNNABLE

posted @   星空物语之韵  阅读(426)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示