本帖最后由 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 万次循环测试,记录任务调度延迟数据:
- 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.1 cyclictest指令
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.2 stress-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) | 空载 | 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),完全满足工业级实时响应需求。
总结
从测试数据可以清晰看出:
1. preempt-rt 补丁的关键作用:通过优化内核调度,RK3576 的最大延迟从毫秒级降至微秒级,实时性提升超 1000 倍;
2. 高负载稳定性:即使在 8 核满载状态下,打补丁后的系统仍能保持极低延迟,确保设备在复杂场景下的可靠运行;
同时把“高性能 + 硬实时 + 低成本”拉满的方案不多,RK3576 算一个;无论是工业控制(需微秒级响应)、智能终端(需流畅交互)还是 AI 边缘计算(需高效任务调度),RK3576 都能胜任。
请关注眺望电子并联系我们,获取完整测试报告与软硬件设计参考资料,我们将竭诚为您服务!
|