Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

C.2. 跟踪点

您可在 /sys/kernel/debug/tracing/ 目录中找到跟踪点,假设将 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 界面有两种使用方法。您可以运行以下命令列出环缓冲的内容:
[root@chywoon gfs2]# cat /sys/kernel/debug/tracing/trace
这个界面适用于在某一段时间内使用长时间运行进程的情况,在一些事件后,想要查看缓冲中最新捕获的信息。另一个界面 /sys/kernel/debug/tracing/trace_pipe 可用于需要所有输出结果的情况。事件发生时即可在这个文件中读取,在这个界面中没有可用的历史记录。输出结果的格式在两个界面中是一样的,本附录后面的小节中将为每个 GFS2 事件进行具体描述。
可使用 trace-cmd 程序读取跟踪点数据。有关这个程序的详情请参考 第 C.10 节 “参考资料”trace-cmd 程序可以类似的方式用于 strace 程序,例如:在从各种资源中收集跟踪数据是运行命令。