云服务器cpu100%问题排查步骤
1.查找cpu使用率最高的进程,称为主进程
查看各种应用的cpu使用情况,按下大写P,从高到低排序
能看到占用cpu最多的那个主进程Pid,比如 13478
top -c
2.查找cpu使用率最高的进程里哪个线程占用cpu 最高,能得到一个线程Pid,比如 15678
top -Hp [主进程pid]
top -Hp 13478
3.将cpu使用率最高的线程Pid转换为16进制,得到 3D3E
print "%x\n" [线程Pid]
print "%x\n" 15678
4.打印内存堆栈信息
jstack [主进程id] | grep '0x3D3E' -CS -color
jstack 13478 | grep '0x3D3E' -CS -color
可以看到哪个类的哪个方法导致的cpu占用过高,根据回显的类和方法进行调整
1.查看僵尸进程
有时候云服务器上跑了多个应用,想把占用高的进程kill掉,但是又kill不掉,说是这个进程是僵尸进程,
使用 ps aux,回显的 STAT 栏会显示为 Z(zombie状态,僵尸进程),比如8546
ps aux
2.找到僵尸进程的父进程,比如 14236
ps -ef | grep 8546
3.先kill掉父进程
kill -9 14236
再尝试kill子进程
kill -9 8546
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示