116 lines
4.3 KiB
Markdown
116 lines
4.3 KiB
Markdown
---
|
||
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]
|
||
```
|
||
|