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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现