首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >服务器老是卡死内存CPU跑满?三步排查法帮你定位问题

服务器老是卡死内存CPU跑满?三步排查法帮你定位问题

作者头像
唯一Chat
发布于 2026-10-21 09:26:44
发布于 2026-10-21 09:26:44
50
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

做网站的都遇到过这种情况——服务器突然卡死,SSH 登录都费劲,更别提网站能不能访问了。

别慌,今天分享一套实战排查思路,帮你快速定位问题进程,对症下药。


第一步:top 命令看全局

登录服务器之后,第一件事敲 top。

这个命令会实时显示当前所有进程的资源占用情况,按 CPU 和内存排序,哪些进程在"吃"你的资源,一眼就能看到。

不过 top 有个缺点:进程多的时候看起来比较乱,不够直观。


第二步:ps 命令精准排序

如果 top 看不清楚,用 ps 命令更直接:

代码语言:javascript
复制
ps aux --sort=-%cpu | head -30

这条命令把所有进程按 CPU 使用率从高到低排序,截取前 30 条。哪个进程占 CPU 最高,直接排在最前面。

想看内存占用排名?换个参数就行:

代码语言:javascript
复制
ps aux --sort=-%mem | head -30

两条命令配合用,CPU 和内存的"元凶"基本跑不掉。


第三步:定位到具体进程后针对性调优

拿我自己的测试服务器来说,排查下来"元凶"是 PHP-FPM。

PHP-FPM 是跑 PHP 网站的核心服务,它的问题是——默认配置下最大进程数(pm.max_children)一般设成 50。

一个 FPM 进程大约占 100M 内存,50 个进程就是 5G。如果你的服务器只有 4G 内存,不卡死才怪。

怎么调?

用宝塔面板的:

  1. 打开「软件商店」→ 找到已安装的 PHP → 点「设置」
  2. 找到 FPM 配置文件
  3. 找到参数 pm.max_children
  4. 把默认值 50 改成 10(或者其他合理值)

⚠️ 注意:别调太低!

如果网站访问量不小,进程数太少会导致请求排队,直接报 502 错误。

这个参数要根据实际访问量来调:

  • 访问量大的站 → 保持较大值或适当增加
  • 测试服务器/低流量站 → 可以调低到 10 甚至更低
  • 核心原则:内存够用 + 不报 502

排查思路总结

步骤

操作

目的

1

top 命令

实时查看资源占用全局

2

ps aux --sort=-%cpu/mem

按 CPU/内存排序定位高占用进程

3

针对性调优配置

根据问题进程调整参数限制资源


写在最后

服务器卡死不可怕,可怕的是不知道问题出在哪。

记住这个排查流程:top 看全局 → ps 排定位 → 针对性调优。大部分资源耗尽问题都能快速找到原因。

像 PHP-FPM 进程泛滥这种问题,改一个参数就能解决,关键是你要先定位到它。


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 第一步:top 命令看全局
  • 第二步:ps 命令精准排序
  • 第三步:定位到具体进程后针对性调优
    • 怎么调?
  • 排查思路总结
  • 写在最后
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档