【经验分享】ARM Linux-RT内核实时系统性能评估工具

【经验分享】ARM Linux-RT内核实时系统性能评估工具


前言

最近在研究Linux-RT实时系统,介绍下常用的实时系统的性能评估工具。


下载和编译方法

用git下载

c 复制代码
git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git

或者下载我上传的工具包即可,已处理arm32位linux操作系统可用。

交叉编译

c 复制代码
make CC=arm-linux-gnueabihf-

在编译目录下会生成如下常用工具。

常用工具介绍

1、cyclictest:用于测量和分析操作系统内核中的定时调度延迟,特别是在实时内核中。它可以帮助衡量系统响应的实时性。

在终端运行如下命令

c 复制代码
cyclictest -t 4 -a -p 99 -m

参数解释:运行 4 个线程,绑定到当前可用的 CPU 核,设置优先级为 99,同时锁定内存,适合测试实时性能。测试结果如下:

c 复制代码
输出结果含义如下: 
T: 0 表示序号为0的线程 
P: 99表示线程优先级为99 
C: 80631表示计数器。线程的时间间隔每达到一次,计数器加1 
I: 1000表示时间间隔为1000微秒(us) 
Min: 表示最小时延(us) 
Act: 表示最近一次的时延(us) 
Avg:表示平均时延(us) 
Max: 表示最大时延(us)

2、hackbench:一种用于测试调度器性能的基准测试工具,模拟消息传递负载以评估系统的调度效率。

在终端输入命令

c 复制代码
hackbench -l 10000

参数解释:表示运行 10,000 次消息传递的循环。

工具会显示完成测试所需的时间(单位为秒),数值越小,系统调度器性能越好。结果如下:

3、hwlatdetect:用于检测硬件延迟的工具,可以帮助发现系统中由于硬件原因导致的延迟问题。

4、pi_stress:测试优先级反转的工具,通过创建多个线程来验证实时环境下的优先级反转处理是否有效。

c 复制代码
pi_stress --duration=10

参数解释:

--duration=10:测试运行 10 秒。

输出结果:工具通过模拟优先级反转场景,验证实时系统是否正确处理了优先级继承,输出相关统计信息。

5、pip_stress:与 pi_stress 类似,专注于测试优先级继承协议的有效性。

6、pmqtest:用于测试 POSIX 消息队列的实时性能,帮助开发者评估消息队列的延迟和吞吐量。

c 复制代码
pmqtest /dev/ttyS2

参数解释:/dev/ttyS2为模拟的 POSIX 消息队列设备文件。

输出结果:工具会显示消息队列的最大延迟、最小延迟和平均延迟。

7、ptsematest:测试 POSIX 信号量的延迟和性能,评估在多任务环境下信号量的实时性能。

c 复制代码
ptsematest -a

参数解释:-a:将信号量测试运行在系统的所有 CPU 核上。

输出结果:工具会输出信号量的最大延迟、最小延迟和平均延迟,用于评估信号量的实时性能。

8、rt-migrate-test:用于测试和分析实时任务在多个 CPU 之间的迁移性能。

在终端运行如下命令

c 复制代码
rt-migrate-test -p 80

参数解释:设置测试任务的优先级为 80

输出结果如下:

c 复制代码
45:表示当前的测试阶段编号(或循环编号)。
后面的数值(如 20070、43、36...):表示迁移延迟(以微秒为单位)或其他相关性能指标。
len:迁移任务的长度或完成迁移所需的时间。
loops:表示任务迁移的循环次数。
Parent pid:父进程的进程 ID,是管理这些任务的主线程。
Task X (prio Y) (pid Z):
Task X:表示测试的第 X 个任务。
prio Y:任务的实时优先级(越低表示优先级越高,通常范围是 0-99,优先级 80、81 表示较高优先级)。
pid Z:任务对应的进程 ID。
Max:任务迁移的最大延迟(以微秒为单位)。
Min:任务迁移的最小延迟(以微秒为单位)。
Tot:任务迁移的总延迟,即所有迁移过程的延迟总和。
Avg:任务迁移的平均延迟。

9、sendme:通常用于发送和接收信号的测试,帮助评估信号传递机制的实时性能。

10、signaltest:用于测试信号处理的延迟和性能,评估信号在系统中的传递效率。

在终端输入命令:

c 复制代码
signaltest -l 100

参数说明:-l 100 测试100个循环

输出结果:显示信号传递的延迟数据。

11、sigwaittest:测试 sigwait() 的性能,分析信号等待机制在实时系统中的效率。

在终端输入命令:

c 复制代码
sigwaittest 

测试结果如下:

12、svsematest:测试 System V 信号量的性能,帮助评估此类型信号量的实时性能。

在终端输入命令:

c 复制代码
svsematest -t 10

参数解释:-t 10:测试运行 10 秒。

测试结果:输出信号量的最大延迟、最小延迟和平均延迟数据。


总结

本文简要介绍了Linux-RT实时系统性能评估工具及实际测试方法,希望对你有所帮助。

相关推荐
中云DDoS CC防护蔡蔡7 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery7 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
欧米欧7 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
上海广测检测科技有限公司8 小时前
蓝牙音箱的 BQB 认证:音频服务层组合、引用链判定与测试状态设定
经验分享
qetfw8 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
逆风的蚂蚁10 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
网安小学生(兼顾数据库版)12 小时前
Black Duck 退出中国市场后,替代方案怎么选?5 项核心能力评估
经验分享
沫璃染墨14 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
AAwangzong15 小时前
AI时代RPA技术解析:如何构建兼顾流程执行与智能决策的自动化平台?
人工智能·经验分享·rpa·智能体