基于Linux内核的实时调度调优实战
📚 共计 30 章节
01
实时系统概述
实时系统定义、硬实时与软实时区别、应用场景(工业控制、自动驾驶、音视频)
基础
概念
02
Linux内核调度器演进
O(n)调度器、O(1)调度器、CFS调度器、实时调度类(RT)的引入
历史
内核
03
实时调度策略详解
SCHED_FIFO、SCHED_RR、SCHED_DEADLINE的原理与区别
策略
核心
04
实时优先级与时间片
实时优先级范围(0-99)、优先级继承协议、时间片分配机制
优先级
时间片
05
内核抢占模型
Preempt Kernel配置、FULL PREEMPT vs PREEMPT_VOLUNTARY、低延迟补丁
抢占
配置
06
实时内核编译与配置
内核源码获取、配置RT组调度、编译选项详解(CONFIG_PREEMPT_RT)
编译
RT
07
实时任务创建与设置
pthread_setschedparam、sched_setscheduler系统调用、chrt命令
API
命令行
08
内存锁定与页错误
mlockall/mlock系统调用、避免实时任务缺页中断、大页内存配置
内存
锁页
09
CPU亲和性与隔离
taskset命令、cpuset控制组、isolcpus内核参数、CPU隔离实战
隔离
亲和性
10
中断亲和性与线程化
IRQ affinity设置、中断线程化(threadirqs)、避免中断风暴
中断
线程化
11
实时调度延迟来源分析
上下文切换、缓存未命中、中断延迟、调度器锁竞争
延迟
分析
12
Cyclictest工具详解
安装与编译、参数含义(间隔、优先级、历史)、结果解读
工具
测试
13
Ftrace追踪调度延迟
function tracer、wakeup tracer、irqsoff tracer、preemptoff tracer
追踪
Ftrace
14
Perf性能分析
perf sched命令、perf record/report、调度延迟热点定位
性能
Perf
15
实时负载测试
stress-ng、hackbench、rt-tests套件、自定义负载脚本
负载
测试
16
实时调度调优方法论
测量-分析-调整-验证循环、基线建立、增量优化
方法论
调优
17
SCHED_DEADLINE深入
EDF算法原理、运行时参数(runtime/deadline/period)、与CFS共存
EDF
Deadline
18
实时组调度
RT group scheduling、cpu.rt_runtime_us、cpu.rt_period_us配置
cgroup
组调度
19
实时任务优先级反转
问题复现、优先级继承协议(PI)、互斥锁与futex
反转
PI
20
实时任务死锁检测
lockdep工具、死锁预防策略、实时场景下的锁设计
死锁
lockdep
21
实时网络栈优化
NAPI轮询、RPS/RFS、XDP、实时网络延迟控制
网络
XDP
22
实时存储I/O优化
CFQ vs deadline vs noop调度器、O_DIRECT、异步I/O
存储
I/O
23
实时虚拟化
KVM实时优化、vCPU pinning、RT guest配置、virtio优化
虚拟化
KVM
24
实时容器
Docker实时配置、cgroup v2实时组、CPU pinning与隔离
容器
Docker
25
实时系统监控
top/htop实时优先级查看、/proc/sched_debug、/proc/latency_stats
监控
proc
26
实时日志与调试
printk延迟影响、trace_printk、动态调试、kdump
调试
日志
27
实时系统稳定性
看门狗(watchdog)、软锁检测(softlockup)、硬锁检测(hardlockup)
稳定性
看门狗
28
实时系统安全
实时任务权限控制、CAP_SYS_NICE、SELinux与RT任务
安全
权限
29
实时系统案例分析
自动驾驶感知模块调优、工业机器人控制周期优化、音频处理低延迟
案例
实战
30
实时调度未来趋势
PREEMPT_RT主线化进展、EAS调度器、混合关键系统(MCS)
趋势
前沿