万维IIP通栏广告位当云伯乐 CDN华纳云
Linux教程2026-07-225 阅读

Linux服务器CPU占用过高怎么办?5分钟快速定位问题并解决

本文摘要Linux服务器CPU突然飙高怎么办?本文介绍服务器CPU占用过高的快速排查方法,通过top、htop、ps、系统日志等工具,5分钟定位高CPU进程原因,并提供常见问题解决方案,帮助运维人员快速恢复服务器稳定运行。
丽萨主机
AD:
【广告招商】文章正文文字广告位开放合作

Linux 服务器 CPU 飙高怎么办?5 分钟定位问题

CPU 100% 了,别慌。按这 5 步来,5 分钟内找到元凶。

第一步:看整体情况

top

看看哪个进程的 %CPU 最高。按 P(大写)可以按 CPU 使用率排序。

第二步:确认是不是负载真的高

uptime

看 load average 的三个值,分别对应 1 分钟、5 分钟、15 分钟的平均负载。如果 1 分钟远高于 15 分钟,说明是刚发生的。

第三步:定位具体线程

找到高 CPU 的 PID 后,看它的线程:

top -H -p <PID>

或者用:

ps -Lp <PID> -o pid,tid,%cpu,comm

第四步:看系统调用

如果是 Java 或 Python 应用,用 strace 看它在干什么:

strace -p <PID> -c -S time

按 Ctrl+C 停止后能看到各系统调用的耗时分布。

第五步:看磁盘和网络

CPU 高有时候是 IO 在等导致的:

iostat -x 1

如果 %iowait 很高,问题可能不是 CPU 不够,是磁盘太慢。

ss -tpln

连接数异常也可能导致 CPU 飙升,比如被 CC 攻击了。

快速排查脚本

#!/bin/bash
echo "=== CPU 占用 TOP 10 ==="
ps aux --sort=-%cpu | head -11
echo "=== 负载 ==="
uptime
echo "=== 内存 ==="
free -h
echo "=== IO ==="
iostat -x 1 2

常见的 CPU 高原因

  • 死循环:应用代码里有个 while(true) 没退出条件
  • 大量请求:被攻击或者业务突然暴增
  • 频繁 GC:Java 应用内存不够,GC 线程满负荷
  • 进程卡住:数据库连接池耗尽,线程不断重试
  • 挖矿病毒:看看有没有可疑进程,留意陌生的二进制名

先找到哪个进程、哪个线程、它在调用什么,然后再决定是重启、修代码还是加机器。不要一看 CPU 高就重启,那是临时止疼不是治病。


广告招商文章内容详情页下 · 优质席位开放中合作咨询
咨询1 位在线

广告投放、资源交换、友情链接