IO를 많이 소비하는 파일을 어떻게 나열합니까?


11

내 문서 관리 소프트웨어가 많은 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

나는의 사람 페이지에보고 iotop, lsof, strace그들은 같은 기능을 제공하지 않는 것.


포스트 프로세서를 작성하여 'strace'에서이 정보를 얻을 수 있지만, 아는 한 그러한 도구는 없습니다. (이러한 도구는 'mmap'을 통해 발생한 작업을 놓칠 수 있습니다.)
David Schwartz

답변:


2

"바이트 수"메트릭이 잘못되었다고 생각합니다. 두 번의 접근을 고려하십시오. 하나는 파일에서 10MB를 읽습니다. 다른 하나는 파일의 512 번째 바이트마다 처음 10MB를 읽습니다. "바이트 수"는 두 번째 액세스에 비해 첫 번째 액세스에 대해 512 배 더 높습니다. 그러나 둘 다 I / O 하위 시스템에 정확히 동일한 부하를 가할 것입니다.

"바이트 수"만큼이나 좋은 "작업 수"를 받아 들일 수 있다면 실제로 측정 할 수있는 것이 있습니다. inotifywatch프로그램은이 작업을 수행하고 그것은 당신의 배포판의 가능성이 일부 inotify-tools패키지로 제공된다.

어떤 파일이 대부분의 액세스를 구성하는지 알려주며 실제 문제를 해결할 수 있습니다.


iotop은 MB / s를 미터법으로 사용합니다. inotifywatch 제안에 +1하면 매뉴얼 페이지의 예가 정확히 내가 필요한 것과 내 질문에 설명 된 것입니다. 고마워요!
Nicolas Raoul

그러나 'iotop'은 파일을 식별 할 수 없으며 장치 만 차단합니다. 따라서 문제 프로세스 및 / 또는 문제 파일 시스템 / 장치를 식별하는 데 도움이 될 수 있지만 액세스하는 파일은 식별 할 수 없습니다. 다른 도구로 조각을 모아야 할 수도 있습니다.
David Schwartz

흠, 흥미 롭다, 고마워! 나는 지금 inotifywatch로 놀고 있으며, 내가 할 수있는 일을 확인할 것이다.
Nicolas Raoul

0

우선, "IO 소비 파일" 과 같은 것은 없습니다 . 파일은 수동 객체입니다. 이다 프로그램 트리거 (일반적으로 읽기 / 쓰기 파일로) IO 그들이 더 많거나 적게 파일에 액세스 할 수 있는지 확인하십시오. 따라서 파일과 관련하여 언급 한 처리량 은 실제로 의미가 없습니다. 파일에 관한 유용한 정보는 파일이 얼마나 자주 액세스하고 수정되는지가 될 수 있습니다. 이것은 notifywait -m /some/file/or/directory( inotify 도구 ) 또는 FAM 또는 Gamin 과 같은보다 복잡한 시스템을 사용하여 모니터링 할 수 있습니다 .


나는이 "처리량"(다른 단어가 더 적절할 수 있습니다, 영어에 미안합니다)을 1 초 동안 특정 파일에서 읽거나 쓰는 바이트의 양 (해당 파일에 액세스 한 각 프로세스의 합계)으로 설명합니다 둘째). 더 이해하기를 바랍니다. inotifywait, fam, gamin 불행히도 "파일 X가 수정 / 읽어졌습니다"라는 메시지 만 표시됩니다.
Nicolas Raoul
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.