IO 소비가 가장 높은 파일을 나열하는 방법은 무엇입니까?

IO 소비가 가장 높은 파일을 나열하는 방법은 무엇입니까?

내 문서 관리 소프트웨어가 많은 IO를 수행하고 있는데 어떤 파일에 가장 많이 액세스하는지 알고 싶습니다.

iotop과 같이 파일에 대해 몇 초마다 IO 소비가 가장 높은 파일 목록을 제공할 수 있는 Linux 도구가 있습니까?

이는 다음과 같을 수 있습니다:

$ thetool
THRPUT   R/W/SWP FILE
40MB/s   write   /usr/alfresco/repo/1283421/1324928.doc
12MB/s   read    /usr/alfresco/cache/3928dh29f8if
11MB/s   read    /tmp/239398hf2f024f472.tmp

iotoplsof에 대한 매뉴얼 페이지를 살펴보았는데 strace그러한 기능을 제공하지 않는 것 같습니다.

답변1

귀하의 "바이트 수" 측정 항목이 잘못된 것 같습니다. 두 번의 방문을 고려해보세요. 파일에서 10MB를 읽습니다. 다른 하나는 파일의 512바이트마다 읽어 처음 10MB를 가져옵니다. 첫 번째 액세스의 "바이트 수"는 두 번째 액세스에 비해 512배 더 커집니다. 그러나 이들 모두는 I/O 하위 시스템에 정확히 동일한 부하를 가합니다.

"피연산자"("바이트 수"만큼 좋거나 나쁨)를 받아들일 수 있다면 실제로 측정할 수 있는 것이 있는 것입니다. 이 프로그램은 이를 수행하며 inotifywatch배포 패키지 inotify-tools의 일부일 수 있습니다.

어떤 파일이 방문의 대부분을 구성하는지 즉시 알려주고 실제 문제를 해결하는 데 도움이 될 수 있습니다.

답변2

먼저 설명 : 그런 것은 없습니다"IO 소비 파일". 파일은 수동적인 객체입니다. 이것은프로그램IO가 트리거되고(일반적으로 파일 읽기/쓰기를 통해) 파일에 어느 정도 액세스할 수 있습니다. 그래서처리량파일에 관해 언급한 내용은 실제로 별 의미가 없습니다. 파일에 대한 유용한 정보는 파일 액세스 및 수정 빈도일 수 있습니다. 이는 다음을 사용하여 수행할 수 있습니다 notifywait -m /some/file/or/directory(from이노티파이 도구) 또는 다음과 같은 좀 더 복잡한 시스템또는노름.

관련 정보