blktrace

리눅스 커널의 Block I/O layer에서 발생하는 block I/O를 추적하는 도구.

blktrace 설치

sudo apt update
sudo apt-get install blktrace

blktrace 사용법

#blktrace -d {관찰하고자 하는 storage device 이름} [-o {출력 파일명}] [-w {관측 시간(초)}] [-a {관측하고자 하는 action}]
blktrace -d /dev/nvme0n1 -o test -w 30 

관측하고자 하는 device 이름은 fdisk -l 명령어를 통해서 확인 가능하다.

Untitled

Block I/O 데이터는 CPU별로 수집된다.

blkparse

blktrace를 통해 수집한 CPU별 block I/O 바이너리 데이터를 지정한 형식으로 파싱하는 도구.

blktrace를 설치할 때 같이 설치되므로 별도의 설치과정은 필요하지 않다.

blkparse 사용법

https://linux.die.net/man/1/blkparse

#blkparse {blktrace 출력파일 이름} -f"{출력 포맷}" -a {파싱하고자 하는 action} -o {출력 파일명}
blkparse test -f "%5T.%5T, %M, %S, %n, %d, %a, %C\n" -o output.txt

Untitled

  • 출력 포맷
    • T: 타임 스탬프 (초 단위)
    • t: 타임 스탬프 (나노초 단위)
    • %5T.%5t: {5자리 s}.{5자리 ns}
    • M: Device 번호
    • S: 섹터 번호
    • n: 요청한 블록 수 (4KB 단위)
    • N: 요청한 바이트 수 (byte 단위)
    • a: action
    • C: 커맨드