聯系我們
Contact Us公司總機:020-8998-6280
技術熱線:020-3893-9734
技術郵箱:support@tronlong.com
銷售郵箱:sales@tronlong.com
延時僅33us,Linux-RT實時性能測試分享—基于瑞芯微RK3562J國產平臺
2024/08/13
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全國產工業核心板產品咨詢可添加如下客服人員微信進行溝通

服務熱線