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