rtla-osnoise-top

显示操作系统噪声摘要

手册部分:

1

概要

rtla osnoise top [选项]

描述

rtla osnoise 工具是 osnoise 跟踪器的一个接口。osnoise 跟踪器为每个 CPU 分配一个内核线程。这些线程在启用抢占、软中断和中断的情况下,循环读取时间,从而允许在执行过程中产生所有操作系统噪声源。osnoise 的跟踪器线程会记录每次时间读取之间的增量,以及所有干扰源的干扰计数器。在每个周期结束时,osnoise 跟踪器会显示结果摘要。

rtla osnoise toposnoise 跟踪器收集周期性摘要,包括干扰源发生次数的计数器,并以用户友好的格式显示结果。

该工具还允许对 osnoise 跟踪器进行多种配置并收集跟踪器输出。

选项

-a, --auto us

设置自动跟踪模式。此模式在调试系统时设置一些常用选项。它等同于使用 -s us -T 1 -t

-p, --period us

设置 osnoise 跟踪器的周期,单位为微秒。

-r, --runtime us

设置 osnoise 跟踪器的运行时间,单位为微秒。

-s, --stop us

如果单个样本高于指定微秒参数,则停止跟踪。如果设置了 -T,它还会将跟踪保存到输出中。

-S, --stop-total us

如果总样本高于指定微秒参数,则停止跟踪。如果设置了 -T,它还会将跟踪保存到输出中。

-T, --threshold us

指定两次时间读取之间的最小增量,以被视为噪声。默认阈值为 5 微秒

-t, --trace [文件]

将停止的跟踪保存到 [文件|osnoise_trace.txt]。

-q, --quiet

仅在会话结束时打印摘要。

-c, --cpus cpu-list

将 osnoise 跟踪器设置为在 cpu-list 中运行样本线程。

-H, --house-keeping cpu-list

仅在给定的 cpu-list 上运行 rtla 控制线程。

-d, --duration 时间[s|m|h|d]

设置会话持续时间。

-D, --debug

打印调试信息。

-e, --event sys:event

在跟踪 (-t) 会话中启用事件。参数可以是特定事件,例如 -e sched:sched_switch,或系统组的所有事件,例如 -e sched。允许多个 -e。仅当设置了 -t-a 时才有效。

--filter <过滤器>

使用 <过滤器> 过滤上一个 -e sys:event 事件。有关事件过滤的更多信息,请参阅 https://linuxkernel.org.cn/doc/html/latest/trace/events.html#event-filtering

--trigger <触发器>

为上一个 -e sys:event 启用跟踪事件触发器。如果激活了 hist: 触发器,输出直方图将自动保存到名为 system_event_hist.txt 的文件中。例如,命令

rtla <命令> <模式> -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:prio|r:prio|f:prio|d:runtime:period

设置 osnoise 跟踪器线程的调度参数,设置优先级的格式为

  • o:prio - 使用 SCHED_OTHER,优先级为 prio

  • r:prio - 使用 SCHED_RR,优先级为 prio

  • f:prio - 使用 SCHED_FIFO,优先级为 prio

  • d:runtime[us|ms|s]:period[us|ms|s] - 使用 SCHED_DEADLINE,运行时间为 runtime,周期为 period,单位为纳秒。

-C, --cgroup[=cgroup]

为跟踪器的线程设置一个 cgroup。如果 -C 选项没有参数,跟踪器的线程将继承 rtlacgroup。否则,线程将被放置在传递给选项的 cgroup 中。

--warm-up s

启动工作负载后,让其运行 s 秒,然后才开始收集数据,以便系统预热。预热期间生成的统计数据将被丢弃。

--trace-buffer-size kB

设置跟踪输出的每 CPU 跟踪缓冲区大小,单位为 kB。

-h, --help

打印帮助菜单。

示例

在下面的示例中,rtla osnoise top 工具设置为以实时优先级 FIFO:1,在 CPU 0-3 上运行,每个周期(默认为 1s)运行 900ms。减少运行时间的原因是为了避免耗尽 rtla 工具。该工具还设置为运行 一分钟,并在会话结束时显示报告摘要

[root@f34 ~]# rtla osnoise top -P F:1 -c 0-3 -r 900000 -d 1M -q
                                        Operating System Noise
duration:   0 00:01:00 | time is in us
CPU Period       Runtime        Noise  % CPU Aval   Max Noise   Max Single          HW          NMI          IRQ      Softirq       Thread
  0 #59         53100000       304896    99.42580        6978           56         549            0        53111         1590           13
  1 #59         53100000       338339    99.36282        8092           24         399            0        53130         1448           31
  2 #59         53100000       290842    99.45227        6582           39         855            0        53110         1406           12
  3 #59         53100000       204935    99.61405        6251           33         290            0        53156         1460           12

另请参阅

rtla-osnoise(1), rtla-osnoise-hist(1)

Osnoise 跟踪器文档: <https://linuxkernel.org.cn/doc/html/latest/trace/osnoise-tracer.html>

作者

由 Daniel Bristot de Oliveira <bristot@kernel.org> 编写

报告 Bug

向 <linux-kernel@vger.kernel.org> 和 <linux-trace-devel@vger.kernel.org> 报告 Bug

许可证

rtla 是根据 GNU GPLv2 许可的自由软件

版权

版权所有 (C) 2021 Red Hat, Inc. 本软件的自由使用受 GNU 公共许可证 (GPL) 条款的约束。