blktrace로 fsync 지연 추적하기
애플리케이션에서 fsync() 호출이 가끔 몇 ms에서 수십 ms까지 튀는데, iostat의 디바이스 평균 지연시간만 봐서는 그게 큐잉 때문인지 디스크 자체가 느린 건지 구분이 안 될 때가 있다. blktrace는 블록 계층의 각…
애플리케이션에서 fsync() 호출이 가끔 몇 ms에서 수십 ms까지 튀는데, iostat의 디바이스 평균 지연시간만 봐서는 그게 큐잉 때문인지 디스크 자체가 느린 건지 구분이 안 될 때가 있다. blktrace는 블록 계층의 각…
디스크 I/O 지연이 의심되는데 iostat이나 top 같은 도구로는 정확히 어느 단계(큐잉, 병합, 드라이버 전달, 디바이스 처리)에서 시간이 걸리는지 알기 어려울 때가 있다. blktrace는 커널 블록 계층(Block Layer)의 트레이스포인트를 이용해 이…