当前位置: 首页 > news >正文

如何测试prmmpt-rt 性能

一、测试目标(测什么)

Preempt-RT 核心是延迟确定性,重点测:

  1. 调度延迟(中断→任务响应时间,μs 级)
  2. 最坏 / 平均 / 抖动(max/avg/jitter,工业关键看 max)
  3. 压力下稳定性(CPU/IO/ 内存满载时延迟是否可控)
  4. 优先级反转(高优先级是否被低优先级阻塞)

二、环境准备(必做)

1. 确认内核

bash

运行

uname -a # 输出带 PREEMPT RT、CONFIG_PREEMPT_RT=y 才算生效

2. 安装工具(rt-tests 套件)

bash

运行

# Ubuntu/Debian sudo apt install rt-tests # 源码编译(最新版) git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git cd rt-tests make sudo make install

3. 系统调优(减少干扰)

bash

运行

# 1. 隔离CPU核心(如隔离核心3) # 启动参数加:isolcpus=3 nohz_full=3 rcu_nocbs=3 # 2. 关闭节能、Turbo、省电策略 echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor # 3. 禁用NUMA平衡、IRQ均衡 sudo sysctl -w kernel.numa_balancing=0 sudo service irqbalance stop # 4. 关闭Swap sudo swapoff -a

三、核心工具与测试命令

1. cyclictest(最核心:测调度延迟)

作用:高精度测量周期性任务的调度延迟。

bash

运行

# 基础测试(1线程、优先级99、1000μs周期、1小时) sudo cyclictest -p 99 -t 1 -i 1000 -D 1h -m -n # 多核隔离测试(绑核心3、4线程、优先级99) sudo cyclictest -p 99 -t 4 -a 3 -i 500 -D 30m -m # 参数说明: # -p 99:最高实时优先级 # -t N:N个线程 # -a X:绑定到CPU X # -i T:周期T μs # -D T:测试时长 # -m:锁定内存(避免swap) # -n:显示统计

2. stress-ng(压力负载)

作用:模拟 CPU/IO/ 内存 满载,测极端工况延迟。

bash

运行

# 后台跑压力(4核CPU、IO、内存) stress-ng --cpu 4 --io 4 --vm 50 --fork 4 & # 再跑 cyclictest 测压力下延迟 sudo cyclictest -p 99 -t 1 -i 1000 -D 30m -m

3. hackbench(调度器压力)

作用:测进程 / 线程频繁创建销毁的调度性能。

bash

运行

hackbench -s 1000 -l 10000 -g 4 # -s:消息大小 # -l:循环次数 # -g:线程组数量

4. pi_stress(优先级反转测试)

作用:验证优先级继承是否有效,避免高优先级被阻塞。

bash

运行

sudo pi_stress -p 99 -t 4 -D 10m

四、关键指标与合格标准(工业常用)

1. cyclictest 输出解读

plaintext

# 典型输出: T: 0 ( 1234) P:99 I:1000 C: 100000 Min: 12 Avg: 15 Max: 45 # Min/Avg/Max:最小/平均/最大延迟(μs) # Jitter = Max - Min(抖动,越小越好)

2. 合格参考(x86 工业机)

  • 空载:Max <50μs,Avg <20μs
  • 满载:Max <100μs(严格场景 <80μs
  • 抖动:<30μs
  • 优先级反转:无(pi_stress 无异常)

五、结果分析与瓶颈定位

  1. Max 延迟大
    • 检查是否隔离 CPU、关闭节能
    • 查看中断是否落在隔离核(cat /proc/interrupts
  2. 抖动大
    • 关闭 NUMA 平衡、RCU 回调
    • 检查驱动是否有非实时锁
  3. 压力下延迟飙升
    • 优化 IRQ 亲和性,把网卡 / 磁盘中断绑到非实时核

六、自动化脚本(一键测试)

bash

运行

#!/bin/bash # preempt-rt 性能测试脚本 # 1. 系统调优 echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor sudo sysctl -w kernel.numa_balancing=0 sudo service irqbalance stop sudo swapoff -a # 2. 空载测试 echo "=== 空载测试 ===" sudo cyclictest -p 99 -t 1 -i 1000 -D 30m -m -n > idle.log # 3. 压力测试 echo "=== 压力测试 ===" stress-ng --cpu 4 --io 4 --vm 50 --fork 4 & sudo cyclictest -p 99 -t 1 -i 1000 -D 30m -m -n > stress.log killall stress-ng echo "测试完成,日志:idle.log / stress.log"

七、常见误区

  • ❌ 只看平均延迟:最大延迟才是实时系统的关键
  • ❌ 不隔离 CPU:内核线程 / 中断会抢占实时任务
  • ❌ 开节能 / Turbo:动态频率导致延迟波动大
http://www.jsqmd.com/news/857351/

相关文章:

  • MySQL 子查询优化如何做?
  • Python PCB工具终极指南:高效解析Gerber与Excellon文件
  • 2026年贵州高考志愿填报与全链条学业规划完全指南:150亿参数AI如何帮你避坑升学与创业 - 优质企业观察收录
  • VideoDownloadHelper:三步轻松搞定网页视频下载的Chrome插件
  • LinkSwift网盘直链下载助手:告别限速的终极免费解决方案
  • ComfyUI-Impact-Pack:AI图像增强的终极模块化解决方案,轻松实现精细化处理
  • AzurLaneAutoScript:碧蓝航线全自动脚本的终极指南
  • CANN/asc-devkit SIMT-API bfloat16精度转换函数
  • CompressO:免费开源的终极视频压缩解决方案,轻松将大文件变小
  • 2026年十大高性价比CRM排行 - 超兔一体云CRM
  • SSZipArchive深度解析:Apple平台ZIP文件处理架构与最佳实践指南
  • 浙江采购5月必看!2026全年度杭州发电机租赁公司哪家好?最新实测排行:嘉兴/嘉善/绍兴/宁波/湖州/金华/台州4家出租选型建议与避坑指南! - 奋斗者888
  • 2026 年全国汤圆机五大公司排名及解析,布局四川成都等地区 - 十大品牌榜
  • 具身智能市场规模将破万亿,飞行机器人创业热背后挑战与投资逻辑并存
  • 武汉好运发搬家:蔡甸专业的居民搬家公司有哪些 - LYL仔仔
  • 公务员事业编【判断推理】 之 “图形推理”
  • 西安高新鑫伟瑞家具维修:未央专业的餐椅翻新选哪家 - LYL仔仔
  • macOS完整安装器下载工具终极指南:轻松获取Big Sur系统安装包
  • 索引下推(ICP)是什么意思?如何理解?
  • 3分钟搞定B站评论分析:这个开源工具让你秒懂评论区用户身份
  • 2026年人才梯队建设头部咨询公司推荐,十大专业机构排名及核心优势 - 远大方略管理咨询
  • mpv.net 高效配置实战:从媒体播放到专业调优的进阶指南
  • Hanime1插件完整指南:Android动漫播放器终极解决方案
  • STM32移植NES模拟器指南
  • 解锁SD-PPP:将AI绘画能力无缝融入Photoshop工作流
  • 2026年广州知名装修公司口碑榜,本地业主实测靠谱推荐! - GEO排行榜
  • FFXVIFix终极指南:解锁《最终幻想16》的完美游戏体验
  • AssetRipper:3步解锁Unity游戏资源逆向提取的终极免费方案
  • 2026年05月精选:口碑GEO优化企业推荐分析揭晓,短视频拍摄制作/产品宣传片拍摄,GEO公司哪家可靠 - 品牌推荐师
  • 如何3分钟实现Windows苹果设备驱动自动化部署:专业解决方案指南