rtla-osnoise-hist¶
显示 osnoise 跟踪器样本的直方图¶
- 手册章节:
1
概要¶
rtla osnoise hist [选项]
描述¶
rtla osnoise 工具是 *osnoise* 跟踪器的一个接口。*osnoise* 跟踪器为每个 CPU 分配一个内核线程。这些线程在启用抢占、软中断和中断的情况下循环读取时间,从而允许在执行期间产生所有操作系统噪声源。*osnoise* 的跟踪器线程记录每次时间读取之间的增量,以及所有干扰源的干扰计数器。在每个周期结束时,*osnoise* 跟踪器会显示结果摘要。
rtla osnoise hist 工具将所有 osnoise:sample_threshold 出现情况收集到直方图中,并以用户友好的方式显示结果。该工具还允许对 *osnoise* 跟踪器进行多种配置,并收集跟踪器输出。
选项¶
-a, --auto 微秒
设置自动跟踪模式。此模式在调试系统时设置了一些常用选项。它等同于使用 -s 微秒 -T 1 -t。
-p, --period 微秒
设置 *osnoise* 跟踪器的周期,单位为微秒。
-r, --runtime 微秒
设置 *osnoise* 跟踪器的运行时长,单位为微秒。
-s, --stop 微秒
如果单个样本高于参数(单位为微秒),则停止跟踪。如果设置了 -T,它还会将跟踪保存到输出。
-S, --stop-total 微秒
如果总样本高于参数(单位为微秒),则停止跟踪。如果设置了 -T,它还会将跟踪保存到输出。
-T, --threshold 微秒
指定两次时间读取之间的最小增量,以便被视为噪声。默认阈值为 *5 微秒*。
-t, --trace [文件]
将停止的跟踪保存到 [文件|osnoise_trace.txt]。
-b, --bucket-size N
设置直方图桶大小(默认为 *1*)。
-E, --entries N
设置直方图的条目数量(默认为 256)。
--no-header
不打印标题。
--no-summary
不打印摘要。
--no-index
不打印索引。
--with-zeros
仅打印零条目。
-c, --cpus cpu-列表
设置 osnoise 跟踪器在 cpu-列表 中运行采样线程。
-H, --house-keeping cpu-列表
仅在给定的 cpu-列表 上运行 rtla 控制线程。
-d, --duration 时间[秒|分|小时|天]
设置会话持续时间。
-D, --debug
打印调试信息。
-e, --event 系统:事件
在跟踪 (-t) 会话中启用一个事件。参数可以是特定事件,例如 -e sched:sched_switch,或者是一个系统组的所有事件,例如 -e sched。允许多个 -e。仅当设置了 -t 或 -a 时才有效。
--filter <过滤器>
使用 <过滤器> 过滤上一个 -e 系统:事件 事件。有关事件过滤的更多信息,请参阅 https://linuxkernel.org.cn/doc/html/latest/trace/events.html#event-filtering。
- --trigger <触发器>
为上一个 -e 系统:事件 启用跟踪事件触发器。如果 *hist:* 触发器被激活,输出直方图将自动保存到名为 *system_event_hist.txt* 的文件中。例如,命令
rtla <command> <mode> -t -e osnoise:irq_noise --trigger=”hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount”
将自动把与 *osnoise:irq_noise* 事件相关的直方图内容保存到 *osnoise_irq_noise_hist.txt* 中。
有关事件触发器的更多信息,请参阅 https://linuxkernel.org.cn/doc/html/latest/trace/events.html#event-triggers。
-P, --priority o:优先级|r:优先级|f:优先级|d:运行时长:周期
设置 osnoise 跟踪器线程的调度参数,设置优先级的格式为
o:优先级 - 使用 SCHED_OTHER 调度器,优先级为 优先级;
r:优先级 - 使用 SCHED_RR 调度器,优先级为 优先级;
f:优先级 - 使用 SCHED_FIFO 调度器,优先级为 优先级;
d:运行时长[微秒|毫秒|秒]:周期[微秒|毫秒|秒] - 使用 SCHED_DEADLINE 调度器,运行时长为 运行时长,周期为 周期,单位为纳秒。
-C, --cgroup[=cgroup]
为跟踪器的线程设置一个 cgroup。如果 **-C** 选项没有带参数,跟踪器的线程将继承 **rtla** 的 cgroup。否则,线程将放置在传递给该选项的 cgroup 中。
--warm-up 秒
启动工作负载后,让它运行 秒 秒,然后再开始收集数据,以便系统预热。预热期间生成的统计数据将被丢弃。
- --trace-buffer-size KB
设置每个 CPU 的跟踪缓冲区大小,单位为 KB,用于跟踪输出。
-h, --help
打印帮助菜单。
示例¶
在下面的示例中,*osnoise* 跟踪器线程被设置为以实时优先级 *FIFO:1* 运行,在 CPU *0-11* 上,每个周期运行 *900ms*(默认为 *1s*)。减少运行时间是为了避免饿死 **rtla** 工具。该工具还设置为运行 *一分钟*。输出直方图设置为将输出按 *10微秒* 的桶和 *25* 个条目进行分组。
[root@f34 ~/]# rtla osnoise hist -P F:1 -c 0-11 -r 900000 -d 1M -b 10 -E 25
# RTLA osnoise histogram
# Time unit is microseconds (us)
# Duration: 0 00:01:00
Index CPU-000 CPU-001 CPU-002 CPU-003 CPU-004 CPU-005 CPU-006 CPU-007 CPU-008 CPU-009 CPU-010 CPU-011
0 42982 46287 51779 53740 52024 44817 49898 36500 50408 50128 49523 52377
10 12224 8356 2912 878 2667 10155 4573 18894 4214 4836 5708 2413
20 8 5 12 2 13 24 20 41 29 53 39 39
30 1 1 0 0 10 3 6 19 15 31 30 38
40 0 0 0 0 0 4 2 7 2 3 8 11
50 0 0 0 0 0 0 0 0 0 1 1 2
over: 0 0 0 0 0 0 0 0 0 0 0 0
count: 55215 54649 54703 54620 54714 55003 54499 55461 54668 55052 55309 54880
min: 0 0 0 0 0 0 0 0 0 0 0 0
avg: 0 0 0 0 0 0 0 0 0 0 0 0
max: 30 30 20 20 30 40 40 40 40 50 50 50
另请参阅¶
rtla-osnoise(1),rtla-osnoise-top(1)
*osnoise* 跟踪器文档:<https://linuxkernel.org.cn/doc/html/latest/trace/osnoise-tracer.html>
报告错误¶
将错误报告给 <linux-kernel@vger.kernel.org> 和 <linux-trace-devel@vger.kernel.org>
许可证¶
rtla 是根据 GNU GPLv2 许可的自由软件
版权¶
版权所有 (C) 2021 Red Hat, Inc. 本软件的免费使用根据 GNU 通用公共许可证 (GPL) 的条款授予。