[嵌入式Linux] 延迟7us、满载抖动10 us,RK3576实时性超乎你的想象

[复制链接]
 楼主| gztwdz4379 发表于 2025-8-8 09:34 | 显示全部楼层 |阅读模式
本帖最后由 gztwdz4379 于 2025-8-8 09:36 编辑

前言:在工业控制、智能设备等领域,处理器的实时性表现直接决定了设备的响应速度与运行稳定性。眺望电子基于RK3576评估板,通过RT补丁实现微秒级精准响应,延迟7us、满载抖动<10 us的实测数据证明它的硬核实力!


一、测试环境


1.1  RK3576 核心板介绍

本次测试的主角是Core-RK3576J V1.1 核心板,搭载 Rockchip 新一代旗舰 RK3576 处理器:

* 先进 8nm 制程工艺,4核 Cortex-A72+4 核 Cortex-A53 架构,主频高达 2.2GHz;
* 核心板采用高速板对板连接器,集成处理器、LPDDR4、EMMC、PMIC等关键器件。


图 1  Core-RK3576核心板正反面图



1.2  测试步骤

步骤 1:运行实时性测试程序

在评估板终端输入指令,执行 100 万次循环测试,记录任务调度延迟数据:
  1. root@rk3576-ubuntu:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > 测试结果文件
参数解析:-l 1000000(测试 100 万次)、-m(锁定内存,避免交换影响)、-Sp99(任务优先级 99)、--policy=fifo(FIFO 调度策略)、-h 25000(迭代间隔 25 微秒)。

步骤 2:模拟 CPU 压力(负载测试场景)

使用 stress-ng 工具让 CPU 满载运行,模拟高负载环境:
  1. root@rk3576-ubuntu:/# stress-ng -c 8 --cpu-method fft --timerfd-freq 1000000 -t 24h &
参数解析:-c 8(占用 8 核 CPU)、--cpu-method fft(用 FFT 算法模拟负载)、-t 24h(持续 24 小时)。

步骤 3:数据可视化与分析
将测试结果文件传输至 Ubuntu 系统,使用 gnuplot 生成延迟分布图,直观呈现实时性表现:
  1. # 安装可视化工具
  2. sudo apt install gnuplot -y
  3. # 运行脚本生成图表
  4. ./rt_createpng.sh 测试结果文件 输出图表.png

三、指令解析


2.1  cyclictest指令

cyclictest是一个用于测试系统中周期性任务调度的工具。它可以测量系统在不同负载下的实时性能,并提供有关任务调度延迟和抖动的信息。

  1. root@rk3576-ubuntu:/#cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q >output-rk3576-nort
参数解析:
  • -l 1000000:指定测试运行的迭代次数为1000000次
  • -m:启用内存锁定,以避免测试过程中的内存交换影响实时性
  • -Sp99:设置测试任务的优先级为99
  • --policy=fifo:设置测试任务的调度策略为FIFO(先进先出)
  • -h 25000:设置每个测试迭代之间的延迟时间为25000纳秒(25微秒)
  • -q:禁止输出额外的信息,只输出测试结果
  • && tail -n 11 output-cpu-rt:在cyclictest测试完毕后打印最后的总结数据

2.2  stress-ng指令
stress-ng是一个用于模拟系统负载的工具,可以测试系统的稳定性和性能
  1. root@rk3576-ubuntu:/#stress-ng -c 4 --cpu-method fft --timerfd-freq 1000000 -t 24h &
参数解析:

  • -c 4:表示使用4个CPU核心进行测试
  • –cpu-method fft:指定使用FFT算法进行CPU负载测试
  • –timerfd-freq 1000000:设置定时器频率为1000000,用于控制测试的时间间隔。
  • -t 24h:设置测试时间为24小时
  • &:在后台运行该命令

三、数据实测


我们分别在无 preempt-rt 补丁和打 preempt-rt 补丁两种场景下,测试了 “空载”和 “CPU 满载”(8 核高负载)状态的实时性,操作如下:

3.1  未打入RT实时补丁

3.1.1 空载运行测试
在终端输入如下指令进行测试:

  1. root@rk3576-ubuntu:/#cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q >output-kong-nort

图 3-1 实时性测试(nort-空载)


生成数据统计图如下:

图 3-2CPU实时性数据统计图(nort-空载运行)


3.1.2 CPU压力测试

使用FFT算法对CPU进行负载测试:
  1. root@rk3576-ubuntu:/#stress-ng -c 8 --cpu-method fft --timerfd-freq 1000000 -t 24h &
  2. root@rk3576-ubuntu:/#cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q >output-cpu-nort
  3. root@rk3576-ubuntu:/#tail -n 11 output-cpu-nort

图 3-3 实时性测试(nort-CPU满载)


生成数据统计图如下:


图 3-4 CPU实时性数据统计图(nort-满载运行)


3.2  打入RT实时补丁
3.2.1 空载运行

在终端输入如下指令进行测试:
  1. root@rk3576-ubuntu:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > output-kong-rt
  2. root@rk3576-ubuntu:/# tail -n 12output-kong-rt



图 3-5 实时性测试(rt-空载)


生成数据统计图如下:

图 3-6 CPU实时性数据统计图(rt-空载运行)


3.2.2 CPU压力测试

使用FFT算法对CPU进行24小时负载测试:

  1. root@rk3576-ubuntu:/#stress-ng -c 8 --cpu-method fft --timerfd-freq 1000000 -t 24h &
  2. root@rk3576-ubuntu:/#cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q >output-cpu-rt
  3. root@rk3576-ubuntu:/#tail -n 11 output-cpu-rt





图 3-7 实时性测试(rt-CPU满载)


生成数据统计图如下:

图 3-8 CPU实时性数据统计图(rt-满载运行)


3.3  数据对比
3.3.1 不打 preempt-rt 补丁
测试场景
CPU 核心
最小延迟(us)
平均延迟(us)
最大延迟(us)
空载
CPU0
524851
空载
CPU1
4251004
空载
CPU2
62714788
空载
CPU3
527330
空载
CPU4
319113
空载
CPU5
318895
空载
CPU6
3188049
空载
CPU7
3188506
满载
CPU0
8235368
满载
CPU1
821115
满载
CPU2
11224951
满载
CPU3
1123141
满载
CPU4
36410
满载
CPU5
35384
满载
CPU6
35408
满载
CPU7
35599
结论:原生系统下,最大延迟普遍较高,空载时 CPU2 甚至达到 14788us(约 14.8ms),满载时 CPU0 最大延迟 5368us(约 5.4ms),实时性表现一般。

3.3.1 打 preempt-rt 补
测试场景
CPU 核心
最小延迟(us)
平均延迟(us)
最大延迟(us)
空载
CPU0
007
空载
CPU1
003
空载
CPU2
004
空载
CPU3
004
空载
CPU4
003
空载
CPU5
003
空载
CPU6
004
空载
CPU7
003
满载
CPU0
1111
满载
CPU1
115
满载
CPU2
114
满载
CPU3
114
满载
CPU4
008
满载
CPU5
005
满载
CPU6
005
满载
CPU7
006
结论:打补丁后,实时性大幅提升 —— 空载时所有核心最大延迟不超过 7us,满载时最大延迟仅 11us(CPU0),完全满足工业级实时响应需求。
总结


从测试数据可以清晰看出:

1. preempt-rt 补丁的关键作用:通过优化内核调度,RK3576 的最大延迟从毫秒级降至微秒级,实时性提升超 1000 倍;
2. 高负载稳定性:即使在 8 核满载状态下,打补丁后的系统仍能保持极低延迟,确保设备在复杂场景下的可靠运行;

同时把“高性能 + 硬实时 + 低成本”拉满的方案不多,RK3576 算一个;无论是工业控制(需微秒级响应)、智能终端(需流畅交互)还是 AI 边缘计算(需高效任务调度),RK3576 都能胜任。

请关注眺望电子并联系我们,获取完整测试报告与软硬件设计参考资料,我们将竭诚为您服务!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部