服务器CPU占用100%快速定位进程

出现CPU100%时,先检查,别急着重启

当服务器CPU占用飙到100%,网页打不开、SSH响应慢,很多新手第一反应是重启。
但重启只能暂时释放资源,不解决问题。
你应该先登录服务器,快速定位是哪个进程在吃CPU。
本文假设你已通过SSH连接服务器,或者能登录宝塔后台。

用 top 命令瞬间揪出CPU杀手

登录服务器后,输入命令:

top -c

参数 -c 可以显示进程的完整命令行。
进入交互界面后,按一下键盘的 P(大写),进程会自动按CPU使用率从高到低排序。
重点关注第一屏的几个进程,看看哪个进程的 %CPU 列接近100%。
记住它的 PIDCOMMAND
q 退出。

如果 top 界面一闪而过,可以用 top -b -n 1 | head -20 将结果打印出来。

用 ps 命令获取更详细的进程信息

找到PID后,用 ps 命令补充查看:

ps -p 1234 -o pid,user,%cpu,cmd --sort=-%cpu

1234 换成实际PID。
也可以直接用下面这条命令直接列出CPU占用前5的进程:

ps aux --sort=-%cpu | head -6

输出中能看到进程所属用户、CPU占用百分比、启动命令等。
如果看到不明进程如 xmrigminerd 等,几乎可以确定是挖矿病毒。

宝塔面板用户:在后台直接查看

如果你用宝塔面板,操作更直观:登录宝塔后台 -> 左侧菜单“监控” -> 顶部“进程管理”。
页面会列出所有进程,默认按CPU排序。
点击某个进程可以查看详细路径和启动参数,甚至直接结束进程。注意:结束进程前先确认是不是重要服务

另外,宝塔的“终端”功能也可以直接执行上面说的命令,不用单独开SSH。

避坑提醒:这些进程不要轻易杀掉

CPU 100%不一定是坏事,可能是正常业务高峰。
常见的不能乱杀的进程:

  • MySQL/mariadb:数据库服务,杀掉会导致网站全崩。
  • php-fpm:PHP进程,高占用可能是并发请求多,先检查慢查询或页面死循环。
  • nginx/httpd:Web服务器,杀掉直接断网。
  • sshd:SSH服务,杀掉你就断连了。

建议先观察一会儿,如果某个进程CPU一直高,记录PID后用 strace -p PID 跟踪系统调用,或查看 /var/log 下的相关日志。
确定是恶意进程(如挖矿、木马)再 kill。

常见问题解答

Q: top 里看不到高占用进程,但CPU还是100%怎么办?
A: 可能是进程频率太高,导致 top 抓不到。按下 H 键开启线程模式,或者用 htop(需要安装:yum install htop -y)实时刷新。

Q: 怎么杀死进程?
A: 先温和结束:kill PID;不行再用强制:kill -9 PID。注意 -9 会立即终止进程,可能丢失数据。

Q: 杀掉之后CPU降下来,但过几分钟又100%了?
A: 很可能是守护进程或定时任务自动重启了恶意程序。检查 crontab:crontab -l,以及 /etc/cron* 下的任务。同时用 netstat -anp 检查可疑连接。

验证问题是否彻底解决

执行下面命令确认:

top -b -n 1 | grep Cpu

%Cpu(s) 行的 ussy 之和是否降到正常范围(通常低于50%)。
再用 uptime 查看负载,free -h 检查内存。
最后打开网站或API测试一下,业务正常即可。

如果你正在处理服务器CPU占用100%快速定位进程的任务,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
服务器高危端口关闭安全加固指南:零基础也能自己动手
下一篇
服务器内存爆满清理与优化方案:服务器内存爆满怎么办?从诊断到
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意