前言:在工业控制、智能设备等领域,处理器的实时性表现直接决定了设备的响应速度与运行稳定性。眺望电子基于RK3576评估板,通过RT补丁实现微秒级精准响应,延迟7us、满载抖动<10 us的实测数据证明它的硬核实力!
一、测试环境
1.1 RK3576 核心板介绍
本次测试的主角是Core-RK3576J V1.1 核心板,搭载 Rockchip 新一代旗舰 RK3576 处理器:
图 1 Core-RK3576核心板正反面图
1.2 测试步骤
步骤 1:运行实时性测试程序在评估板终端输入指令,执行 100 万次循环测试,记录任务调度延迟数据:
root@rk3576-ubuntu:/# cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q > 测试结果文件
步骤 2:模拟 CPU 压力(负载测试场景)使用 stress-ng 工具让 CPU 满载运行,模拟高负载环境:
root@rk3576-ubuntu:/# stress-ng -c 8 --cpu-method fft --timerfd-freq 1000000 -t 24h &
步骤 3:数据可视化与分析将测试结果文件传输至 Ubuntu 系统,使用 gnuplot 生成延迟分布图,直观呈现实时性表现:
# 安装可视化工具sudo apt install gnuplot -y# 运行脚本生成图表./rt_createpng.sh 测试结果文件 输出图表.png
二、指令解析
2.1 cyclictest指令
cyclictest是一个用于测试系统中周期性任务调度的工具。它可以测量系统在不同负载下的实时性能,并提供有关任务调度延迟和抖动的信息。
root@rk3576-ubuntu:/#cyclictest -l 1000000 -m -Sp99 --policy=fifo -h 25000 -q >output-rk3576-nort
参数解析:
2.2 stress-ng指令
stress-ng是一个用于模拟系统负载的工具,可以测试系统的稳定性和性能
root@rk3576-ubuntu:/#stress-ng -c 4 --cpu-method fft --timerfd-freq 1000000 -t 24h &
参数解析:
三、数据实测
我们分别在无 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
root@rk3576-ubuntu:/#tail -n 11 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) |
| 空载 | CPU0 | 5 | 24 | 851 |
| 空载 | CPU1 | 4 | 25 | 1004 |
| 空载 | CPU2 | 6 | 27 | 14788 |
| 空载 | CPU3 | 5 | 27 | 330 |
| 空载 | CPU4 | 3 | 19 | 113 |
| 空载 | CPU5 | 3 | 18 | 895 |
| 空载 | CPU6 | 3 | 18 | 8049 |
| 空载 | CPU7 | 3 | 18 | 8506 |
| 满载 | CPU0 | 8 | 23 | 5368 |
| 满载 | CPU1 | 8 | 21 | 115 |
| 满载 | CPU2 | 11 | 22 | 4951 |
| 满载 | CPU3 | 11 | 23 | 141 |
| 满载 | CPU4 | 3 | 6 | 410 |
| 满载 | CPU5 | 3 | 5 | 384 |
| 满载 | CPU6 | 3 | 5 | 408 |
| 满载 | CPU7 | 3 | 5 | 599 |
结论:原生系统下,最大延迟普遍较高,空载时 CPU2 甚至达到 14788us(约 14.8ms),满载时 CPU0 最大延迟 5368us(约 5.4ms),实时性表现一般。
3.3.1 打 preempt-rt 补丁
| 测试场景 | CPU 核心 | 最小延迟(us) | 平均延迟(us) | 最大延迟(us) |
| 空载 | CPU0 | 0 | 0 | 7 |
| 空载 | CPU1 | 0 | 0 | 3 |
| 空载 | CPU2 | 0 | 0 | 4 |
| 空载 | CPU3 | 0 | 0 | 4 |
| 空载 | CPU4 | 0 | 0 | 3 |
| 空载 | CPU5 | 0 | 0 | 3 |
| 空载 | CPU6 | 0 | 0 | 4 |
| 空载 | CPU7 | 0 | 0 | 3 |
| 满载 | CPU0 | 1 | 1 | 11 |
| 满载 | CPU1 | 1 | 1 | 5 |
| 满载 | CPU2 | 1 | 1 | 4 |
| 满载 | CPU3 | 1 | 1 | 4 |
| 满载 | CPU4 | 0 | 0 | 8 |
| 满载 | CPU5 | 0 | 0 | 5 |
| 满载 | CPU6 | 0 | 0 | 5 |
| 满载 | CPU7 | 0 | 0 | 6 |
结论:打补丁后,实时性大幅提升 —— 空载时所有核心最大延迟不超过 7us,满载时最大延迟仅 11us(CPU0),完全满足工业级实时响应需求。
总结
从测试数据可以清晰看出:
同时把“高性能 + 硬实时 + 低成本”拉满的方案不多,RK3576 算一个;无论是工业控制(需微秒级响应)、智能终端(需流畅交互)还是 AI 边缘计算(需高效任务调度),RK3576 都能胜任。请关注眺望电子公众号并联系我们,获取完整测试报告与软硬件设计参考资料,我们将竭诚为您服务!
全部0条评论
快来发表一下你的评论吧 !