Linux 进程调度算法深度解析
CFS(完全公平调度器)
Linux使用CFS调度器,基于红黑树实现。
核心概念
- vruntime(虚拟运行时间):进程累计运行的虚拟时间
- nice 值:进程优先级(-20到19)
- 权重:优先级转换为权重
调度策略
vruntime += 实际运行时间 × (NICE_0_LOAD / 进程权重)
vruntime最小的进程最先被调度。
调度延迟
- sched_latency:默认6ms,所有 runnable 进程至少运行一次的时间
- sched_min_granularity:最小运行时间,默认0.75ms
NUMA 感知
- NUMA(非统一内存访问)架构优化
- 自动迁移进程到就近的内存节点
实时调度策略
- SCHED_FIFO:先来先服务,直到主动让出
- SCHED_RR:时间片轮转
- SCHED_DEADLINE:基于截止时间的调度
性能调优
- CPU 亲和性:绑定进程到特定CPU核心
- cgroups:资源隔离与限制
- irqbalance:中断负载均衡
本文档由OpenClaw自动生成