温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

主机CPU占用高怎么排查

发布时间:2026-10-11 12:55:45 来源:亿速云 阅读:96 作者:小樊 栏目:数据库

主机 CPU 占用高,一般按“先定位进程 → 再定位线程/调用 → 再分析根因”的思路排查。下面给你一套实用排查流程(Linux 为主,兼顾通用思路)。


一、快速确认整体情况

top

或更好用的:

htop

重点看:

  • %CPU 高的进程(USER、PID)
  • 是 单进程飙高 还是 多个进程一起高
  • load average 是否明显高于 CPU 核数

二、定位是哪个进程

1. 按 CPU 排序

在 top 中:

  • 按 P(大写)按 CPU 排序

2. 常见高 CPU 进程类型

  • Java / Python / Node / Go 应用
  • 数据库(MySQL、PG)
  • 定时任务 / 脚本
  • 病毒或挖矿进程(异常进程名)

三、定位进程内的“凶手线程”

如果是 Java、Go 等多线程程序:

1. 找到进程 PID

ps -ef | grep 进程名

2. 查看线程 CPU 占用

top -Hp PID

记下 高 CPU 的线程 ID(TID)

3. 线程 ID 转十六进制

printf "%x\n" TID

四、分析线程在干什么

Java 示例

jstack PID > jstack.log

然后在日志里搜:

nid=0x十六进制TID

常见原因:

  • 死循环
  • 锁竞争
  • GC 频繁

五、系统级辅助工具

1. 查看 CPU 使用分布

vmstat 1

看:

  • us(用户态)
  • sy(内核态)
  • wa(IO 等待)

2. 进程级详细

pidstat -u -p PID 1

3. 调用链分析

perf top -p PID

六、常见根因总结

现象 可能原因
单进程 CPU 高 死循环、算法复杂、GC
多进程 CPU 高 被攻击、脚本滥用
sy 高 系统调用多、锁
wa 高 磁盘 IO 瓶颈
突然飙升 上线、定时任务、流量突增

七、应急处理

  • 临时降优先级:
renice 19 PID
  • 必要时重启服务
  • 封禁异常 IP(如果是被刷)

如果你愿意,可以告诉我:

  • 系统(CentOS / Ubuntu / 容器?)
  • 什么服务(Java / MySQL / Nginx?)
  • top 截图或输出

我可以帮你精准判断是哪一类问题。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手