创龙首页 >关于创龙 > 新闻资讯 > 技术文章

联系我们

Contact Us

公司总机:020-8998-6280

技术热线:020-3893-9734

技术邮箱:support@tronlong.com

销售邮箱:sales@tronlong.com

延时仅33us,Linux-RT实时性能测试分享—基于瑞芯微RK3562J国产平台

2024/08/13

本文主要介绍瑞芯微RK3562J的实时性测试,开发环境如下:

U-Boot:U-Boot-2017.09

Kernel:Linux-RT-5.10.198

LinuxSDK:

LinuxSDK-[版本号]

(基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)


RK3562J实时性测试数据


本文使用Cyclictest延迟检测工具测试Linux系统实时性,分别在CPU空载、满负荷(运行stress压力测试工具)、满负载-隔离CPU3核心(运行stress压力测试工具)三种情况下运行指令测试12小时。



图 1 RK3562J实时性测试数据


根据3种状态的测试结果可知,当程序指定至隔离的CPU3核心上运行时,Linux系统延迟最低,可有效提高系统实时性。故推荐对实时性要求较高的程序(功能)指定至隔离的CPU核心运行。


RK3562J典型应用领域



图 2


Cyclictest系统实时性测试


本文通过创龙科技TL3562-EVM工业评估板(基于RK3562J)的硬件平台进行演示。为了简化描述,本文仅摘录部分方案功能描述与测试结果,详细产品资料请扫描文末二维码下载。

本次测试以隔离CPU3核心为例,通过降低系统上所运行的其他进程对隔离CPU3产生的延迟影响,确保CPU3进程的正常运行,进而评估Linux-RT内核的系统实时性。

评估板上电启动后,在U-Boot倒计时结束之前按下空格键进入U-Boot命令行模式,执行如下命令,修改环境变量,隔离CPU3核心。

U-Boot#setenv bootargs storagemedia=sd androidboot.storagemedia=sd androidboot.mode=normal isolcpus=3

U-Boot#saveenv

U-Boot#reset



图 3


评估板重启后,执行如下命令,查看环境变量。

Target#cat /proc/cmdline



图 4


进入评估板文件系统,执行如下命令,修改内核printk日志等级,避免内核打印信息影响实时测试。

Target#echo 1 > /proc/sys/kernel/printk

调整内存分配策略为“2”,禁用内存过度使用。避免出现OOM(Out-of-Memory) Killer攻击某些进程而产生延迟,影响测试结果。

Target#echo 2 > /proc/sys/vm/overcommit_memory



图5


执行如下命令,运行stress压力测试工具,使得CPU处于满负荷状态。再使用taskset工具将Cyclictest测试程序运行在CPU3核心,测试CPU3核心满负荷状态下的系统实时性能。测试指令需运行12小时,请保持评估板长时间稳定工作,测试完成后将生成统计结果iso_overload_output文件。

Target#stress-ng --cpu 4 --cpu-method=all --io 4 --vm 4 --vm-bytes 64M --timeout 43200s &

Target#taskset -c 0-3 cyclictest -m -Sp99 -i1000 -h800 -D12h -q > iso_overload_output



图 6


对测试结果文件的数据进行分析,使用脚本生成直方图,得到隔离CPU核心状态下的统计结果如下所示。本次测试中,CPU1核心Max Latencies值最大,为244us,隔离CPU3核心的Max Latencies值最小,为33us。



图7



表 1



更多瑞芯微RK3562J全国产工业核心板产品资料可长按二维码识别下载


更多瑞芯微RK3562J全国产工业核心板产品咨询可添加如下客服人员微信进行沟通


(即刻添加,马上咨询)

如需选购瑞芯微RK3562J工业核心板,欢迎登录创龙科技天猫旗舰店:tronlong.tmall.com
瑞芯微RK3562J技术交流群:567208221,欢迎加入!



创龙官方微信公众号

Copyright © 2013~2024 广州创龙电子科技有限公司 All Rights Reserved  | 粤ICP备15055271号