# :-: cyclictest测试工具分析
| 适用范围 | 适用版本 | 人员 | 发布时间 | 文档版本 |备注 |
| --- | --- | --- | --- | --- |--- |
| 服务器操作系统 | 通用 | 王国武 |2022.3.4| V1.0|发布|
| 服务器操作系统 | 通用 | 张志勇 |2022.3.4| V1.1|模板调整|
### 经测试,该方案有效可行
*****
### 简介:
cyclictest测试工具是一款在实时系统上通过比对理论唤醒延迟和实际唤醒延迟得到系统的延迟。
### 正文:
cyclictest:
当测试时不添加"-n"参数时,使用的是设置定时器的方式,使用sigwait等待SIGALRM>触发的方式,计算理论唤醒时间和实际唤醒时间的差值,作为单次延迟,与最小值,最大值比>对,计算入平均值。平均值的计算方式是计算总延迟和统计计算次数,两者相除。
当测试时添加“-n”参数时,使用clock_nanosleep获取当前时间,clock_nanosleep默>认是暂停执行,直到指定时间过去之后,或者被信号唤醒。同样是比对唤醒的理论时间和实际>唤醒时间,计算偏差结果,既是延迟。
选项解析:
```
-a 当没有后接选项,测试程序在创建线程的时候,会从0开始,依次递增分配给线程>。之后又从0开始分配,直到线程创建完毕。如果后面接了数字,则所有的线程的cpu亲和度都>是这个数字。
-b USEC 当延迟大于USEC时,发送breaktrace命令。
--c CLOCK --clock=CLOCK 选择时钟类型.
0 = CLOCK_MONOTONIC (default)
1 = CLOCK_REALTIME
-C --context 上下文切换跟踪,和 -b选项一起使用 。B 监控抢占和中断关闭。
-d DIST 在创建新线程时,设定每个线程之间定时器的时间间隔。
-D --duration=t 指定测试程序运行时间。
-E --event 事件跟踪。与-b选项一起使用。
-f --ftrace 函数跟踪,和-b选项一起使用。
-h --histogram=US 运行后转储延迟直方图到stdout。
-H --histofall=US 比-h选项结果多一个额外的摘要栏。
-i INTV --interval=INTV 线程的定时器基本值。
-I --irqoff 跟踪irqoff。
-l LOOPS --loops=LOOPS loops的值。循环执行多少次。
-m --mlockall 锁定当前和未来的内存分配。
-M --refresh_on_max 不更新显示指导有更大的延迟出现。
-n --nanosleep 使用clock_nanosleep函数。
-N --nescs 输出结果单位用ns取代us。
-o RED --oscope=RED oscilloscope模式。
-O TOPT --TRACEOPT=TOPT 跟踪选项。
-p PRIO --prio=PRIO 线程的最大优先级。多线程递减原则分配优先级。
-P --preemptoff 跟踪抢占关闭。
-q --quiet 只在退出时输出一个总结信息。
-r --relative 使用相对时间取代绝对时间。
-s --system 使用sys_nanosleep 和 sys_setitimer.
-t --threads 一个可用cpu一个线程。
-t NUM --threads=NUM 总共创建几个线程。
-T TRACE --tracer=TRACER 设置跟踪的功能。有blk function_graph wake_rt等。
-u --unbeffered 强制非缓冲输出,用于实时处理。
-v --verbose 在标准输出上输出结果,方便统计。
-w --wakeup 监控任务唤醒。
-W --wakeuprt 监控实时任务唤醒。
-y POLI --policy=POLI 实时下成的策略。
-S --smp SMP测试,等同于选项"-a -n -t"。
-U --numa 基础的NUMA测试,类似与-S。
```
- 常见问题
- 进入救援模式
- 进入单用户模式
- grub引导修复
- V10SP1-biosdevname解析
- 外设挂载和卸载
- audit关闭解决方案
- 终端无法切换
- 救援模式取数据
- 网卡更名操作
- 问题复现解决类
- xgboost复现解决步骤
- 激活类
- 麒麟服务器激活常用命令
- 服务器故障激活问题--须知
- 激活权限获得方式
- V10-SP系列服务器激活
- 银河麒麟高级服务器操作系统V7&V10激活手册
- shell脚本类
- 多网卡队列绑定CPU脚本
- 服务器健康检查脚本
- 服务安装配置类
- 银河麒麟高级服务器操作系统V10(sp1)安装手册
- LVM创建
- Chrony时间同步配置
- 搭建网络yum源
- PXE部署实施
- Man手册安装
- 部署VNC服务
- Kylin-Server-V10-SP1-0711-DNS服务单机部署文档
- 麒麟ks文件定制-封装iso文件
- iptables端口配置
- V10-SP1-aarch64安装jdk1.7
- 工具使用类
- cyclictest测试工具
- e2fsprogs工具介绍
- Logrotate工具说明
- nmon工具安装与使用
- 升、降级类
- rsyslog升级报告
- 性能优化类
- 日志轮转
- 大页内存与透明大页详解
- 优化磁盘IO调度方式
- core文件设置
- 分析报告类
- bond模式4协商不通排查
- audit内存泄露问题分析报告
- mate-indicators内核占用过高问题分析报告
- ansible问题-hostname以及lvol报错
- 关于Linux内存计算的说明
- 磁盘IO调度算法
- 硬件相关类
- 串口
- 网络相关类
- bond创建
- 在已配置好网络情况下添加路由
- 网卡配合网桥实现内网互通KVM虚拟机
- Bond模式4协商不通排查过程
- HA高可用
- kylin HA shell实践
- kylin HA概念性及shell使用
- 虚拟化
- KVM创建虚拟机(图形化操作)
- KVM创建虚拟机(命令操作)
- 容器类
- docker-runc升级
- docker基础镜像制作-服务器版
- 麒麟云平台
- USB3.0设备穿透方法(针对win10云主机穿透)
- 麒麟云平台开关机操作说明
- 技术演练
