公司博客 // 2026-08-30 · BY IDCBOT

Linux进程管理详解:用top、htop、kill排查资源占用与卡死

服务器突然变慢、CPU飙到100%、内存被吃光——是哪个进程在作怪?进程管理是运维排障的基本功。学会看进程、揪出资源黑洞、处理失控进程,你就能快速定位和解决”服务器卡了”的问题。本文教你这套技能。

一、top:资源监控的瑞士军刀

top

进入top后,关键信息:

  • 顶部负载(load average):三个数字是1/5/15分钟的平均负载,超过CPU核心数说明繁忙;
  • %CPU / %MEM列:按占用排序,一眼看出谁在吃资源(top里按 P 按CPU排序、M 按内存排序);
  • %st(steal):被宿主机偷走的CPU,持续大于0说明VPS被超售(参考虚拟化篇);
  • PID:进程号,后面kill要用。

二、htop:更好用的top

apt install htop -y
htop

htop是top的增强版:彩色界面、可视化的CPU/内存条、能用方向键选进程、直接按F9结束进程、支持鼠标。强烈推荐装上,比top直观得多。

三、ps:精确查找进程

ps aux | grep nginx           # 查找特定进程
ps aux --sort=-%cpu | head    # 按CPU占用排序前几名
ps aux --sort=-%mem | head    # 按内存占用排序

ps适合脚本里精确查找、或者快速定位某个程序的进程和PID。

四、kill:结束进程

kill PID              # 温和地请求进程退出(发TERM信号)
kill -9 PID           # 强制杀死(进程卡死、温和方式无效时)
killall nginx         # 按名字杀死所有同名进程
pkill -f "关键词"     # 按命令行关键词杀

建议先用普通kill(给进程机会正常清理退出),不行再用 kill -9 强杀。数据库等进程强杀可能导致数据问题,谨慎。

五、实战:CPU飙到100%怎么办?

  1. top 或 htop,按CPU排序,找出占用最高的进程和PID;
  2. 判断这个进程是什么:正常业务突然吃CPU?可能是流量大、慢查询、死循环;陌生进程?可能是被入侵挖矿(参考入侵应急篇);
  3. 是业务进程:排查为什么吃CPU(看日志、查数据库慢查询、看是不是被攻击);
  4. 是可疑进程:立即警惕入侵,按应急流程处理;
  5. 临时救急:可kill掉失控进程恢复服务,但要找到根因防复发。

六、实战:内存被吃光(OOM)

内存耗尽时,系统会触发OOM killer杀掉进程(参考swap篇):

free -h                       # 看内存和swap使用
dmesg | grep -i "out of memory"   # 查是否发生过OOM,杀了谁
ps aux --sort=-%mem | head    # 找内存大户

处理:优化吃内存的进程(如调小数据库缓冲、限制程序内存)、开适量swap兜底、或升级内存(长期依赖swap说明内存真不够)。

七、进阶:查进程的更多信息

ls -l /proc/PID/exe          # 进程对应的程序文件路径(揪木马用)
ls -l /proc/PID/cwd          # 进程工作目录
cat /proc/PID/cmdline        # 完整启动命令
lsof -p PID                  # 进程打开的文件和连接

这些在排查可疑进程、定位程序来源时很有用。

结论

进程管理排障流程:top/htop看谁吃资源 → ps精确定位 → 判断是业务还是异常 → 找根因(日志/慢查询/攻击)→ 必要时kill救急。CPU飙高查是不是被入侵挖矿、内存耗尽查OOM。这套技能让你面对”服务器卡了”能冷静定位而非重启了事。配合监控告警,资源异常还能提前知道。在你的服务器上装个htop,平时多看看进程,熟悉了排障就快。

// LEAVE A COMMENT

Your email address will not be published. Required fields are marked *