使用 trace-cmd 追踪内核

trace-cmd 是一个易于使用,且特性众多、可用来追踪内核函数的命令。

trace-cmd 是一个易于使用,且特性众多、可用来追踪内核函数的命令。

使用 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

本文由 LCTT 原创编译,Linux中国 荣誉推出

主题测试文章,只做测试使用。发布者: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/

Like (0)
eason的头像eason
Previous 2021年10月5日
Next 2021年10月6日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信