Files
Inbox/系统基座文件/1/1.1/1.1.3 CPU 调度与核心隔离 (CPU Scheduling & Isolation).md
2025-12-11 07:24:36 +08:00

116 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
tags:
date created: 星期三, 十一月 19日 2025, 3:56:35 下午
date modified: 星期三, 十一月 19日 2025, 3:56:46 下午
---
# 1.1.3 CPU 调度与核心隔离 (CPU Scheduling & Isolation)
**1. CPU 物理拓扑与 NUMA 布局 (CPU Topology & NUMA Layout)**
- **关键性**P0
- **预期信息**确认物理核心数、Socket 数量及 NUMA 节点分布。Feiteng S5000C 通常为多路多核架构,跨 NUMA 节点的内存访问会导致显著的时延抖动,需确认 CPU 核心与 NUMA 节点的亲和性映射。
- 探测命令:
```bash
lscpu -e=CPU,NODE,SOCKET,CORE,CACHE
CPU NODE SOCKET CORE L1d:L1i:L2:L3
0 0 0 0 0:0:0:0
1 0 0 1 1:1:1:0
2 0 0 2 2:2:2:0
15 0 0 15 15:15:15:0
16 1 0 16 16:16:16:1
17 1 0 17 17:17:17:1
31 1 0 31 31:31:31:1
```
**2. 运行时核心隔离状态 (Runtime CPU Isolation)**
- **关键性**P0
- **预期信息**:检查内核是否已成功隔离指定核心(返回核心列表)。被隔离的核心将不再接收操作系统的常规任务调度,仅处理绑定到该核心的实时雷达信号处理线程。若为空,说明未配置隔离。
- 探测命令:
```bash
cat /sys/devices/system/cpu/isolated
```
**3. CPU 频率调节模式 (Frequency Scaling Governor)**
- **关键性**P1
- **预期信息**:确认 CPU 调频策略。应为 `performance`(定频/高性能)。若为 `powersave` 或 `ondemand`CPU 频率随负载波动会破坏信号处理的时间确定性Jitter
- 探测命令:
```bash
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | sort | uniq
performance
```
**4. 自动 NUMA 平衡策略 (Automatic NUMA Balancing)**
- **关键性**P1
- **预期信息**:返回 `0` (禁用) 或 `1` (启用)。在实时系统中应设为 `0`。若启用,内核会自动迁移内存页以试图优化局部性,这会引发不可控的 Page Fault 和延迟,严重干扰 DSP 算法运行。
- 探测命令:
```bash
cat /proc/sys/kernel/numa_balancing
1
```
**5. 实时调度节流阈值 (Real-time Throttling)**
- **关键性**P1
- **预期信息**:默认通常为 `950000` (μs),即预留 5% CPU 给非实时任务。若雷达处理线程独占核心且需 100% 占用(死循环轮询),需设为 `-1` 以关闭节流,否则线程会被强制挂起。
- 探测命令:
```bash
cat /proc/sys/kernel/sched_rt_runtime_us
950000
```
**6. 中断负载均衡服务状态 (IRQ Balance Service)**
- **关键性**P2
- **预期信息**:确认 `irqbalance` 服务状态。对于高性能网卡或 PCIe 采集卡通常需要关闭自动均衡手动将硬中断IRQ绑定到特定核心以避免中断处理在不同核心间漂移导致缓存失效。
- 探测命令:
```bash
systemctl status irqbalance 2>/dev/null | grep -E "Active|Loaded"
Loaded: loaded (/usr/lib/systemd/system/irqbalance.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2025-11-19 14:12:35 CST; 1h 41min ago
```
**7. 离线核心状态 (Offline CPUs)**
- **关键性**P2
- **预期信息**检查是否有核心被逻辑关闭Hotplug off。这有时用于节能或规避硬件故障需确认所有预期可用的物理核心均处于 Online 状态(此处为空表示全在线)。
- 探测命令:
```bash
cat /sys/devices/system/cpu/offline
```
**8. 现有实时进程分布 (Existing RT Processes)**
- **关键性**P2
- **预期信息**:扫描当前系统中是否已有运行在 `RR` (Round Robin) 或 `FIFO` 策略下的实时进程,防止它们与未来的雷达业务产生资源争抢。
- 探测命令:
```bash
ps -eo pid,cls,rtprio,cmd --sort=-rtprio | grep -E "RR|FF" | head -n 10
13 FF 99 [migration/0]
16 FF 99 [migration/1]
21 FF 99 [migration/2]
26 FF 99 [migration/3]
31 FF 99 [migration/4]
36 FF 99 [migration/5]
41 FF 99 [migration/6]
46 FF 99 [migration/7]
51 FF 99 [migration/8]
56 FF 99 [migration/9]
```