메타데이터에 대한 읽기/쓰기 또는 매핑 파일이 디스크에 도착할 때 모니터링

메타데이터에 대한 읽기/쓰기 또는 매핑 파일이 디스크에 도착할 때 모니터링

다양한 웹 사이트를 호스팅하는 서버에서 iotop, iostat, sar와 같은 도구를 사용하여 IO 작업을 담당하는 프로세스를 식별하지 못하고 IO가 병목 현상을 일으키는 경우를 종종 봅니다.

나는 이러한 프로세스가 메타데이터에 대해 많은 IO(속성 읽기 및/또는 쓰기, 많은 빈 파일 생성 또는 삭제 등)를 수행하고 있다고 의심합니다. 불행하게도 이러한 작업은 "프로세스별"로 계산되지 않으며 메모리 매핑 파일(mmap)을 사용하여 IO 수행되지도 않습니다.

내 질문은: 메모리 매핑된 파일의 메타데이터 및 io를 포함하여 프로세스당 또는 파일당(아마도 더 나은) IO를 모니터링 및/또는 계산(예: cgroups 및 blkio 사용)하는 방법이 있습니까?

현재 systemtap을 사용하여 "디스크에 적중된 요청"을 계산하고, 주요 페이지 오류에 대해 handler_mm_fault()(커널의 mm/memory.c)를 검색하려고 시도하고 있지만 작업이 수행되었는지 확인할 수 없습니다. 파일 시스템 메타데이터 이 함수에 의해 처리되는 페이지 폴트를 생성합니다.

귀하의 통찰력에 감사드립니다!

답변1

내가 하려는 작업에 가까운 systemtap 스크립트를 생각해 냈지만 쓰기를 추적하지 않습니다.

코드의 요점은 다음과 같습니다.https://gist.github.com/Martiusweb/10633360

답변2

나는 내 의견을 듣고 나서 다음과 같은 훌륭한 명령을 기억했습니다.오토프

iotop  watches I/O usage information output by the Linux kernel (requires
2.6.20 or later) and displays a table of current I/O usage by processes or 
threads on the system.

그러나 일반적으로 설치되어 있지 않으므로 서버가 프로덕션 중인 것으로 보이므로 살펴보는 것이 좋습니다.여기설치할 수 없는 경우.

반품라소프프로세스에서 열린 파일을 확인하는 좋은 명령입니다.

관련 정보