一、Linux 结束进程的常用命令¶
原始笔记中把这三个命令称为“杀手三剑客”,它们分别适合不同场景。
| 命令 | 说明 |
|---|---|
kill |
按 PID 结束进程,最常用 |
pkill |
按进程名或匹配条件发送信号,适合批量处理 |
killall |
按进程名结束进程,使用前要确认名称是否精确匹配 |
1.1 kill 常见写法¶
| kill 命令 | 说明 |
|---|---|
kill pid |
默认发送终止信号 TERM |
kill -9 pid |
发送强制终止信号 KILL |
使用 kill -9 虽然直接,但也要谨慎,尤其不要随意对数据库等关键服务使用强制结束信号,否则可能带来数据不一致或恢复成本。
二、什么是系统负载¶
2.1 负载的定义¶
在 Linux 中,负载是衡量系统繁忙程度的重要指标,通常以三个值表示,分别对应:
- 1 分钟平均负载
- 5 分钟平均负载
- 15 分钟平均负载
负载的本质,可以理解为一段时间内系统运行队列的平均长度,也就是等待 CPU 或处于不可中断状态的任务数量。
2.2 如何理解平均负载¶
从运维排障角度,可以把平均负载理解为:单位时间内,系统中处于可运行状态以及不可中断状态的平均任务数。
它并不等同于 CPU 使用率:
- CPU 很高,负载可能也高
- 磁盘 IO 很重时,CPU 不一定高,但负载仍然可能很高
所以看到高负载后,不能只盯着 CPU,要继续判断是计算型问题还是 IO 型问题。
三、如何查看系统负载¶
3.1 使用 w¶
如果有监控平台,通常可以直接从监控平台看到负载;如果没有,也可以使用 w 命令手动查看:
$ w

3.2 使用 uptime¶
uptime 也是最常见的负载查看方式:
$ uptime
10:34:43 up 4 days, 18:41, 3 users, load average: 0.00, 0.01, 0.05
四、负载高如何排查¶
4.1 先判断是 CPU 还是 IO 问题¶
排查高负载时,第一步不是立刻杀进程,而是先区分问题来源。
4.1.1 定位 CPU 原因¶
查看 top 输出中的以下字段:
us:用户态 CPU 占用sy:系统态 CPU 占用
如果这两个值较高,通常表示 CPU 压力较大。

4.1.2 定位 IO 原因¶
如果 top 中的 wa(IO wait)较高,通常说明磁盘 IO 等待比较严重,负载高更可能是 IO 导致的。

4.2 根据原因继续排查¶
4.2.1 CPU 型问题¶
如果判断是 CPU 导致的负载高,可以继续用 ps 过滤出占用 CPU 较高的进程,例如:
$ ps --no-heading aux | sort -rnk3 | head -5
或者直接查看某个可疑服务的进程信息,再结合业务日志与调用链继续定位。
4.2.2 IO 型问题¶
如果是 IO 导致的负载高,可以使用 iotop 查看哪些进程在持续占用磁盘 IO:
$ iotop -o
其中 -o 表示只显示有实际 IO 活动的进程,适合快速定位问题对象。
五、小结¶
处理 Linux 进程问题时,可以按这个顺序思考:
1、先确认是哪个进程有问题。
2、再判断是优雅终止还是强制结束。
3、如果表现为高负载,不要急着 kill -9,先区分 CPU 压力还是 IO 等待。
4、结合 uptime、w、top、ps、iotop 逐步缩小范围,再做处理。