本文主要是介绍Linux 实时性能测试工具--Cyclictest,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Cyclictest的安装和使用
- 前言
- 一、下载并安装Cyclictest
- 二、Cyclictest计算延时的原理
- 三、Cyclictest的使用
- 1.使用参数介绍
- 2.输出数据分析
- 总结
前言
Cyclictest是一个高精度的测试程序,Cyclictest 是 rt-tests 下的一个测试工具,也是rt-tests 下使用最广泛的测试工具,一般主要用来测试使用内核的延迟,从而判断内核的实时性。
一、下载并安装Cyclictest
# 安装需要的numa库
# apt指令
sudo apt install libnuma-dev
# yum指令
yum install numactl-develgit clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
cd rt-tests
make
sudo make install
二、Cyclictest计算延时的原理
简单来说就是程序会记录进程睡眠的开始时间t1而进程的实际睡眠时间时t2,但程序真正唤醒并运行的时间时t3。所以是t3-t2-t1得出的结果即为延时。
三、Cyclictest的使用
1.使用参数介绍
cyclictest -m -S -p 80 -i 1000 -d 0
options | value |
---|---|
-a N | 在处理器N上运行 |
-A USEC | 将线程唤醒对齐到特定的偏移量USEC |
-b USEC | 当延时>USEC时 发送中断 |
-c CLOCK | 选择时钟 0 = CLOCK_MONOTONIC (默认) 1 = CLOCK_REALTIME |
-d DIST | 线程间隔的距离DIST,默认为500 |
-D | 指定运行时常,附加m、h、d 来指定分钟、小时、天 |
-F | 在path上创建一个命名管道并向其写入统计信息 |
-h | 运行后将延迟直方图转储到标准输出 |
-H | 与-h相同,只是增加了一个汇总列 |
-i INTV | 线程的基本间隔INTV。默认为1000us |
-l LOOPS | 循环次数LOOPS,默认=0(无限) |
-m | 锁定当前和未来的内存分配 |
-M | 延迟更新屏幕,直到新的最大延迟被击中。适用于低带宽 |
-N | 使用单位为ns 默认为us |
-o RED | 示波器模式,减少RED输出的冗余 |
-p PRIO | 设置线程优先级为PRIO |
-q | 仅在退出时打印 |
-r | 使用相对计时器而不是绝对计时器 |
-t N | 使用CPU的数量,默认为1 |
-S | 标准SMP测试:选项-a -t和所有线程的相同优先级 |
也可以使用 Cyclictest --help 进行查看
2.输出数据分析
输出 | 含义 |
---|---|
T | 0 序号为0的线程 |
P | 80 线程优先级为800 |
I | 1000 时间间隔为1000微秒(us) |
C | 15607计数器。线程的时间间隔每达到一次,计数器加1 |
Min | 最小时延(us) |
Act | 最近一次的时延(us) |
Avg | 平均时延(us) |
Max | 最大时延(us) |
总结
以上就是今天要讲的内容,本文简单介绍了Cyclictest的使用以及原理。希望对大家有所帮助。
这篇关于Linux 实时性能测试工具--Cyclictest的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!