延迟7us、满载抖动10 us,RK3576实时性超乎你的想象
本帖最后由 gztwdz4379 于 2025-8-8 09:36 编辑前言:在工业控制、智能设备等领域,处理器的实时性表现直接决定了设备的响应速度与运行稳定性。眺望电子基于RK3576评估板,通过RT补丁实现微秒级精准响应,延迟7us、满载抖动<10 us的实测数据证明它的硬核实力!
一、测试环境
1.1RK3576 核心板介绍
本次测试的主角是Core-RK3576J V1.1 核心板,搭载 Rockchip 新一代旗舰 RK3576 处理器:
* 先进 8nm 制程工艺,4核 Cortex-A72+4 核 Cortex-A53 架构,主频高达 2.2GHz;
* 核心板采用高速板对板连接器,集成处理器、LPDDR4、EMMC、PMIC等关键器件。
图 1Core-RK3576核心板正反面图
1.2测试步骤
步骤 1:运行实时性测试程序
在评估板终端输入指令,执行 100 万次循环测试,记录任务调度延迟数据:
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 满载运行,模拟高负载环境:
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 生成延迟分布图,直观呈现实时性表现:
# 安装可视化工具
sudo apt install gnuplot -y
# 运行脚本生成图表
./rt_createpng.sh 测试结果文件 输出图表.png
三、指令解析
2.1cyclictest指令
cyclictest是一个用于测试系统中周期性任务调度的工具。它可以测量系统在不同负载下的实时性能,并提供有关任务调度延迟和抖动的信息。
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.2stress-ng指令
stress-ng是一个用于模拟系统负载的工具,可以测试系统的稳定性和性能
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 空载运行测试
在终端输入如下指令进行测试:
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进行负载测试:
root@rk3576-ubuntu:/#stress-ng -c 8 --cpu-method fft --timerfd-freq 1000000 -t 24h &
root@rk3576-ubuntu:/#cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q >output-cpu-nort
root@rk3576-ubuntu:/#tail -n 11 output-cpu-nort
图 3-3 实时性测试(nort-CPU满载)
生成数据统计图如下:
图 3-4 CPU实时性数据统计图(nort-满载运行)
3.2打入RT实时补丁
3.2.1 空载运行
在终端输入如下指令进行测试:
root@rk3576-ubuntu:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > output-kong-rt
root@rk3576-ubuntu:/# tail -n 12output-kong-rt
图 3-5 实时性测试(rt-空载)
生成数据统计图如下:
图 3-6 CPU实时性数据统计图(rt-空载运行)
3.2.2 CPU压力测试
使用FFT算法对CPU进行24小时负载测试:
root@rk3576-ubuntu:/#stress-ng -c 8 --cpu-method fft --timerfd-freq 1000000 -t 24h &
root@rk3576-ubuntu:/#cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q >output-cpu-rt
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)
空载CPU0524851
空载CPU14251004
空载CPU262714788
空载CPU3527330
空载CPU4319113
空载CPU5318895
空载CPU63188049
空载CPU73188506
满载CPU08235368
满载CPU1821115
满载CPU211224951
满载CPU31123141
满载CPU436410
满载CPU535384
满载CPU635408
满载CPU735599
结论:原生系统下,最大延迟普遍较高,空载时 CPU2 甚至达到 14788us(约 14.8ms),满载时 CPU0 最大延迟 5368us(约 5.4ms),实时性表现一般。
3.3.1 打 preempt-rt 补丁
测试场景CPU 核心最小延迟(us)平均延迟(us)最大延迟(us)
空载CPU0007
空载CPU1003
空载CPU2004
空载CPU3004
空载CPU4003
空载CPU5003
空载CPU6004
空载CPU7003
满载CPU01111
满载CPU1115
满载CPU2114
满载CPU3114
满载CPU4008
满载CPU5005
满载CPU6005
满载CPU7006
结论:打补丁后,实时性大幅提升 —— 空载时所有核心最大延迟不超过 7us,满载时最大延迟仅 11us(CPU0),完全满足工业级实时响应需求。
总结
从测试数据可以清晰看出:
1. preempt-rt 补丁的关键作用:通过优化内核调度,RK3576 的最大延迟从毫秒级降至微秒级,实时性提升超 1000 倍;
2. 高负载稳定性:即使在 8 核满载状态下,打补丁后的系统仍能保持极低延迟,确保设备在复杂场景下的可靠运行;
同时把“高性能 + 硬实时 + 低成本”拉满的方案不多,RK3576 算一个;无论是工业控制(需微秒级响应)、智能终端(需流畅交互)还是 AI 边缘计算(需高效任务调度),RK3576 都能胜任。
请关注眺望电子并联系我们,获取完整测试报告与软硬件设计参考资料,我们将竭诚为您服务!
页:
[1]