다양한 매개변수를 기반으로 디스크 통계를 얻는 방법

다양한 매개변수를 기반으로 디스크 통계를 얻는 방법

다음과 같은 일부 매개변수로 그룹화된 디스크 통계를 얻을 수 있는 방법이 있습니까?

크기/지연 시간별로 작성하시겠습니까? 크기/지연 시간으로 읽으시겠습니까?

그것은 다음과 같습니다:

total writes - 100
writes by size:
    - < 4096 - 20
    - 4096 - 16384 - 30
    ...

여기서 4096/16384는 블록 크기입니다.

답변1

eBPF를 사용하여 대기 시간별로 그룹화합니다.https://github.com/iovisor/bcc/blob/v0.9.0/tools/biolatency_example.txt

크기별로 분류하는 방법은 잘 모르겠습니다. eBPF 또는 blktrace를 사용하면 확실히 가능합니다. (오버헤드가 약간 더 높다고 생각합니다 blktrace.)


혼란스럽게도 block/blk-stat.c일종의 대기 시간 히스토그램이 구현되었습니다. ("버킷"에 대한 참조를 참조하십시오. 그러나 커널 내부의 몇몇 위치에서만 사용되며 커널 외부에서는 사용할 수 없습니다.

관련 정보