9.7. bmap tracepoints
블록 매핑은 모든 파일 시스템에 중심적인 작업입니다. GFS2는 블록당 두 비트가 있는 기존의 비트 기반 시스템을 사용합니다. 이 하위 시스템의 추적 지점의 주요 목적은 블록을 할당 및 매핑하는 데 걸리는 시간을 모니터링할 수 있도록 하는 것입니다.
gfs2_bmap
tracepoint는 각 bmap 작업에 대해 두 번 호출됩니다. bmap 요청을 표시하기 시작할 때 한 번 결과를 표시합니다. 이렇게 하면 요청과 결과를 함께 일치시키고 파일 시스템의 다양한 부분에 있는 블록을 매핑하는 데 걸리는 시간을 측정하거나 다른 파일 오프셋 또는 다른 파일도 측정할 수 있습니다. 또한 반환되는 평균 범위 크기가 요청되는 항목과 비교하여 확인할 수 있습니다.
gfs2_rs
추적 추적 블록 예약은 블록 할당기에서 생성, 사용 및 삭제됩니다.
할당된 블록을 추적하기 위해 gfs2_block_alloc
은 할당 시뿐만 아니라 블록을 해제하는 경우에도 호출됩니다. 할당은 모두 블록이 의도한 inode에 따라 참조되므로, 라이브 파일 시스템에서 어떤 물리 블록이 속하는지 추적할 수 있습니다. 이는 blktrace
와 결합할 때 특히 유용하며, 이는 이 추적점에서 얻은 매핑을 사용하여 관련 inode로 다시 참조할 수 있는 문제가 있는 I/O 패턴을 표시합니다.
직접 I/O(iomap
)는 디스크와 사용자의 버퍼 간에 직접 파일 데이터 전송을 수행할 수 있는 대체 캐시 정책입니다. 이로 인해 캐시 적중률이 낮을 경우 이점이 있습니다. gfs2_iomap_start
및 gfs2_iomap_end
tracepoints는 이러한 작업을 추적하며, 작업 유형과 함께 Direct I/O 파일 시스템인 Direct I/O를 사용하여 매핑을 추적할 수 있습니다.