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
程序,例如:在从各种资源中收集跟踪数据是运行命令。