当前位置:首页>Linux>服务器卡死?CPU 100%?Linux 进程管理详解(ps / top / htop / kill)

服务器卡死?CPU 100%?Linux 进程管理详解(ps / top / htop / kill)

  • 2026-10-04 18:12:47
服务器卡死?CPU 100%?Linux 进程管理详解(ps / top / htop / kill)

Linux 有一句经典设计哲学:一切皆文件。

而从运行视角看,所有正在执行的程序,最终都会以进程的形式存在。

终端是进程,Nginx 是进程,数据库是进程,Docker 同样也是进程。

当服务器:

  • CPU 100%
  • 内存爆满
  • 程序卡死

本质问题几乎都和进程有关。

今天介绍 4 个与进程相关的核心工具:

pstophtopkill

一、什么是进程?

更准确的定义是:

进程 = 程序的一次运行实例

它可能处于:

  • 运行
  • 睡眠
  • 等待 IO
  • 暂停

等多种状态。

例如:

ls

系统会:

  1. 创建进程
  2. 执行命令
  3. 退出

而 Nginx、MySQL 这类服务:

  • 启动后长期运行
  • 持续占用资源

称为常驻进程。

二、ps —— 查看进程静态快照

ps(process status)

它查看的是:

执行命令瞬间,系统中所有进程的静态快照。

常用命令

查看所有进程

ps aux

字段解释:

字段
含义
USER
所属用户
PID
进程ID
%CPU
CPU占用
%MEM
内存占用
VSZ
虚拟内存
RSS
常驻物理内存
STAT
进程状态
START
启动时间
TIME
累计CPU时间
COMMAND
执行命令

常见 STAT 状态

状态
含义
R
运行中
S
可中断睡眠
D
不可中断睡眠(通常 IO)
Z
僵尸进程
T
暂停

僵尸进程(Z):

子进程已结束,但父进程未回收资源。

三、zsh 踩坑:grep [n]ginx 报错

很多教程写:

ps aux | grep [n]ginx

但在 zsh 下会报:

zsh: no matches found

原因:

zsh 会把 [n] 当成文件通配符(glob)。

若当前目录没有匹配文件,就报错。

正确写法(zsh 环境)

ps aux | grep "[n]ginx"

或:

pgrep -a nginx

现代运维更推荐:

pgrep

而不是依赖 grep 技巧。

四、top —— 实时监控进程

服务器异常第一步:

top

1️⃣ load average

load average: 1.20 0.85 0.60

分别代表:

  • 1 分钟、5 分钟、15 分钟的平均等待 + 运行进程数
解释:
  • 1.20
    :过去 1 分钟,你的 Linux 系统里「等待 CPU 运行 + 正在 CPU 上运行」的进程平均有 1.2 个;
  • 0.85
    :过去 5 分钟,这个平均值是 0.85 个;
  • 0.60
    :过去 15 分钟,这个平均值是 0.6 个。

单核 CPU

单核 CPU:load ≈ 1 → 基本满负载

多核 CPU

多核 CPU:load ≈ 核心数 → 整体满负载

例如:

  • 4 核 CPU
  • 负载 4.0 = 满负载
  • 负载 2.0 = 使用 50%注意:load 高于核心数 ≠ 一定卡死,要看是 CPU 繁忙还是 IO 阻塞

2️⃣ CPU 使用率

  • us(用户):用户态程序消耗
  • sy(系统):内核态消耗
  • id(空闲):CPU 空闲比例

id 越低,说明 CPU 越忙。

3️⃣ 内存

关注:

  • used
  • free
  • buff/cache

五、htop —— 更友好的监控工具

安装(CentOS Stream):

dnf install htop -y   # 需 root 权限

非 root:

sudo dnf install htop -y

运行:

htop

支持:

  • 彩色界面
  • 滚动
  • 鼠标操作
  • 直接杀进程

六、kill —— 终止进程

kill PID

默认发送:

SIGTERM (15)

这是优雅终止:

进程收到信号后,会尝试清理资源(关闭文件、释放连接)再退出。

常见信号

信号
数字
作用
SIGTERM
15
优雅终止
SIGKILL
9
强制终止
SIGHUP
1
重载配置

不要随便 kill -9

kill -9 PID
  • 不可捕获
  • 不执行清理
  • 可能损坏数据

正确顺序:

  1. kill
  2. 无效再 kill -9

七、标准排查流程

服务器变慢时:

第一步

top

第二步

记录异常 PID

第三步

ps -fp PID

确认进程来源。

第四步(重要)

确认是否为非核心进程。

不要误杀:

  • systemd
  • sshd
  • 关键系统服务

第五步

优雅终止:

kill PID

八、必须理解的核心

1️⃣ 进程有 PID2️⃣ 存在父子关系3️⃣ 若服务由 systemd 管理且开启了自动重启策略,被 kill 后可能自动重启4️⃣ kill 本质是发送信号

九、四个命令定位

命令
定位
ps
看结构
top
看实时
htop
增强版监控
kill
发信号解决问题

一句话总结:

ps 看全局,top 看动态,kill 做决策。

结论

掌握进程管理,是从:

“会用 Linux”

到

“会维护 Linux”

的第一步。

[具体工具详细使用会在后续文章中更新]


文 / 零距技术仓记录每一次真实的折腾 (#^.^#)🚀 想看到更多实用折腾技巧?👉 先关注💬 评论区说说你的经历或想看的内容👍 点赞表示支持🔁 顺手分享给也在折腾的人,让大家都少踩坑 😎

最新文章

随机文章