linux-sre-handbook

03-进程与线程

基本概念

概念 定义
进程 程序的运行实例,拥有独立的地址空间和资源
线程 进程内的执行单元,共享地址空间,轻量级调度
协程 用户态调度的轻量级任务,非抢占式

进程生命周期

创建(fork) → 就绪(Ready) → 运行(Running) → 终止(Terminated)
                   ↑              ↓
                   └── 等待(Waiting/Sleeping)

进程状态(ps STAT 字段)

状态码 含义 说明
R Running/Runnable 正在运行或在运行队列中
S Interruptible Sleep 可中断睡眠,等待事件
D Uninterruptible Sleep 不可中断睡眠(通常是 IO)
T Stopped 被信号暂停
Z Zombie 僵尸进程,已终止但父进程未回收

fork() vs exec()

线程模型

1:1 模型(Linux 采用 NPTL)

进程 vs 线程的创建开销

/proc 文件系统与进程

/proc/<PID>/cmdline    # 启动命令
/proc/<PID>/status     # 进程状态、内存使用
/proc/<PID>/fd/        # 打开的文件描述符
/proc/<PID>/cgroup     # 所属 cgroup
/proc/<PID>/limits     # 资源限制
/proc/<PID>/oom_score  # OOM 评分

关键命令

ps aux                    # 进程快照
top / htop                # 实时进程监控
pstree -p                 # 进程树
strace -p <PID>           # 跟踪系统调用
lsof -p <PID>             # 进程打开的文件

SRE 排查要点

延伸阅读