9.2. 追踪点(Tracepoints)


追踪点可以在 /sys/kernel/debug/ 目录下找到,假设 debugfs 挂载于 /sys/kernel/debug 目录中的标准位置。events 子目录包含所有可以被指定的追踪事件,如果提供了载入的 gfs2 模块,则在每个 GFS2 事件中都有一个 gfs2 子目录。/sys/kernel/debug/tracing/events/gfs2 目录的内容类似如下:

[root@chywoon gfs2]# ls
enable            gfs2_bmap       gfs2_glock_queue         gfs2_log_flush
filter            gfs2_demote_rq  gfs2_glock_state_change  gfs2_pin
gfs2_block_alloc  gfs2_glock_put  gfs2_log_blocks          gfs2_promote

要启用所有 GFS2 追踪点,请输入以下命令:

[root@chywoon gfs2]# echo -n 1 >/sys/kernel/debug/tracing/events/gfs2/enable

要启用特定的追踪点,在每个事件子目录中有一个 enable 文件。filter 文件也是如此,可用于为每个事件或一组事件设置事件过滤器。下面详细解释了各个事件的含义。

追踪点的输出以 ASCII 或二进制格式提供。本附录目前不包含二进制接口。ASCII 接口有两种方式。要列出环缓冲(ring buffer)的当前内容,您可以输入以下命令:

[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace

当您在一定时间段内使用长时间运行的过程时,且希望在这些事件进行之后重新查看缓冲区中最新捕获的信息时,这个接口很有用。需要所有输出时,也可以使用另一种接口 /sys/kernel/debug/tracing/trace_pipe。事件发生时会从这个文件中进行读取,这个接口不提供历史数据。两个接口的输出格式是相同,在本附录后续部分对每个 GFS2 事件都有说明。

可以使用名为 trace-cmd 的实用程序来读取追踪点数据。有关这个工具的详情,请参考 http://lwn.net/Articles/341902/trace-cmd 实用程序可用方式与 strace 实用程序类似,例如在从不同源收集追踪数据时运行命令。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.