Linux 进程管理与性能排查实战

本文最后更新于 2026年7月7日 下午

Linux 进程管理与性能排查实战

一、进程与 PID

在 Linux 中,程序运行后会形成一个独立的执行实例,称为进程(Process)。

例如:

1
python3 app.py

运行后会创建一个 Python 进程,并占用 CPU、内存等系统资源。

每个进程都拥有唯一标识符 PID(Process ID):

1
2
3
nginx    PID=1001
mysqld PID=800
python3 PID=2000

系统对进程的管理,本质上就是对 PID 的管理。

二、查看进程信息

使用 ps

查看系统全部进程:

1
ps aux

常见字段:

字段 说明
PID 进程ID
%CPU CPU占用率
%MEM 内存占用率
COMMAND 启动命令

查看指定进程:

1
ps aux | grep nginx

更推荐使用:

1
pgrep -a nginx

输出示例:

1
2
1001 nginx: master process
1002 nginx: worker process

三、系统资源监控

top

实时查看系统运行状态:

1
top

重点关注:

  • CPU 使用率
  • 内存使用率
  • Load Average(系统负载)

负载可理解为等待 CPU 调度的任务数量。

以 4 核 CPU 为例:

Load 状态
<4 正常
=4 满负载
>4 存在性能压力

常用快捷键:

1
2
3
P  按CPU排序
M 按内存排序
q 退出

htop

安装:

1
2
sudo apt update
sudo apt install htop -y

启动:

1
htop

相比 top,支持交互式操作、搜索和进程管理,更适合日常运维使用。

四、查看进程关系

查看父子进程结构:

1
pstree

示例:

1
2
3
4
systemd
├─sshd
├─nginx
└─mysqld

该命令有助于分析服务启动链路和进程依赖关系。

五、终止进程

kill

正常结束进程:

1
kill PID

常用信号:

信号 说明
SIGTERM(15) 优雅终止
SIGKILL(9) 强制终止

查看所有信号:

1
kill -l

建议优先使用默认 SIGTERM,仅在进程失去响应时使用 SIGKILL。

killall

按进程名称结束:

1
killall nginx

pkill

按名称或条件匹配:

1
2
pkill nginx
pkill python3

六、资源占用分析

查看 CPU 占用最高的进程:

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

查看内存占用最高的进程:

1
ps aux --sort=-%mem | head

这些命令常用于服务器性能异常时的快速定位。

七、查看进程打开的文件与端口

lsof

查看进程打开的文件:

1
lsof -p PID

查看端口对应进程:

1
2
sudo lsof -i :80
sudo lsof -i :22

也可结合网络排查工具:

1
ss -tulnp

快速确认端口占用情况。

八、典型故障排查案例

CPU 持续过高

查看系统状态:

1
top

按 CPU 排序:

1
P

找到高占用进程后进一步分析程序逻辑或日志。

服务无法启动

检查端口占用:

1
ss -tulnp | grep 80

发现其他程序占用端口后,可停止对应进程或修改服务配置。

内存占用异常

查看内存排行:

1
ps aux --sort=-%mem | head

或使用:

1
htop

定位异常进程后结合日志进一步分析原因。

九、常用排查流程

当服务器出现卡顿或服务异常时,建议按照以下顺序分析:

1
2
3
4
5
6
7
8
9
10
11
查看系统负载(top)

定位异常进程(ps、htop)

确认PID与资源占用

检查日志

确认端口与网络状态

决定重启、优化或终止进程

掌握进程管理工具与排查思路后,可以快速定位 CPU、内存、端口占用以及服务异常等常见运维问题。


Linux 进程管理与性能排查实战
http://example.com/b8824750.html
作者
SHAO
发布于
2026年6月22日
许可协议