9.7. Bmap 追踪点
块映射对任何文件系统都是一个核心任务。GFS2 使用传统的基于位图的系统,每个块有两个位。这个子系统中的追踪点的主要目的是,允许监控分配和映射块的时间。
每个 bmap 操作都会调用 gfs2_bmap
追踪点:一次在开始显示 bmap 请求,一次在结尾以显示结果。这样可轻松地将请求和结果匹配,并测量在文件系统的不同部分映射块、不同文件偏移甚至不同文件所需时间。也可以查看返回的平均扩展大小与请求的比较。
gfs2_rs
跟踪点跟踪块在块分配器中创建、使用和销毁时的块保留。
要追踪分配的块,gfs2_block_alloc
不仅在分配时被调用,在释放块时也会被调用。由于分配都是根据块所针对的内节点引用的所有,因此可用来跟踪哪些物理块属于 live 文件系统中的文件。这在与 blktrace
合并时特别有用,这会显示有问题的 I/O 模式,然后使用追踪点提供的映射将其返回到相关的内节点。
直接 I/O(iomap
)是一个替代缓存策略,它允许在磁盘和用户缓冲区之间直接进行文件数据传输。当缓存的匹配率低时,这将非常有用。gfs2_iomap_start
和 gfs2_iomap_end
追踪点可跟踪这些操作,并可用于跟踪使用 Direct I/O 的文件系统的映射,即直接 I/O 文件系统中的位置,以及操作类型。