trace-cmd 是一个易于使用,且特性众多、可用来追踪内核函数的命令。
在 之前的文章 里,我介绍了如何利用 ftrace
来追踪内核函数。通过写入和读出文件来使用 ftrace
会变得很枯燥,所以我对它做了一个封装来运行带有选项的命令,以启用和禁用追踪、设置过滤器、查看输出、清除输出等等。
trace-cmd 命令是一个可以帮助你做到这一点的工具。在这篇文章中,我使用 trace-cmd
来执行我在 ftrace
文章中所做的相同任务。由于会经常参考那篇文章,建议在阅读这篇文章之前先阅读它。
安装 trace-cmd
本文中所有的命令都运行在 root 用户下。
因为 ftrace
机制被内置于内核中,因此你可以使用下面的命令进行验证它是否启用:
“`
mount | grep tracefs
none on /sys/kernel/tracing type tracefs (rw,relatime,seclabel)
“`
不过,你需要手动尝试安装 trace-cmd
命令:
“`
dnf install trace-cmd -y
“`
列出可用的追踪器
当使用 ftrace
时,你必须查看文件的内容以了解有哪些追踪器可用。但使用 trace-cmd
,你可以通过以下方式获得这些信息:
“`
trace-cmd list -t
hwlat blk mmiotrace functiongraph wakeupdl wakeup_rt wakeup function nop
“`
启用函数追踪器
在我 之前的文章 中,我使用了两个追踪器,在这里我也会这么做。用 function
启用你的第一个追踪器:
“`
$ trace-cmd start -p function
plugin ‘function’
“`
查看追踪输出
一旦追踪器被启用,你可以通过使用 show
参数来查看输出。这只显示了前 20 行以保持例子的简短(见我之前的文章对输出的解释):
“`
trace-cmd show | head -20
tracer: function
#
entries-in-buffer/entries-written: 410142/3380032 #P:8
#
_-=> need-resched
| / _
via: https://opensource.com/article/21/7/linux-kernel-trace-cmd
作者:Gaurav Kamathe 选题:lujun9972 译者:萌新阿岩 校对:wxy
主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2021/10/05/%e4%bd%bf%e7%94%a8-trace-cmd-%e8%bf%bd%e8%b8%aa%e5%86%85%e6%a0%b8/