어떤 프로세스가 하드 드라이브에 쓰고 있는지 확인


31

Lenovo T400 및 Ubuntu에서 하드 드라이브 쓰기 표시등이 계속 깜박입니다. Linux에서 하드 드라이브에 대한 I / O를 수행하는 프로세스를 찾을 수 있는지 궁금합니다. 에서와 마찬가지로 top대부분의 CPU 및 메모리를 사용하는 프로세스를 찾을 수 있습니다.

답변:


41

Iotop 은 원하는 것을위한 좋은 도구입니다. 또한 DISK READ, DISK WRITE, SWAPIN 및 IO (전체 백분율)에서 누적 된 I / O 양을 표시 할 수 있습니다. 이것은 멋진 인터페이스를 통해 이루어집니다 :

  • a키보드를 누르면 굶주린 프로세스가 맨 위에 정렬됩니다.
  • 주문을 취소하려면을 누르십시오 r.
  • 다른 열을 기준으로 정렬하려면 왼쪽 / 오른쪽 키를 누르면됩니다.

마찬가지로 top, 프리젠 테이션은 오히려 중입니다. 또 다른 것은 그것이 가지고있는 무수한 옵션을 top가지고 있지 않다는 것입니다 (예 : 관심없는 열을 숨길 수는 없습니다).하지만 도구는 특정 목적에 충분합니다.


3
Powertop 은 또한 랩탑에서 배터리를 사용하는 것을 찾는 데 유용합니다. iotop은 여전히 ​​디스크 액세스를 찾는 첫 번째 장소입니다.
Gilles 'SO- 악한 중지'

-o( --only)를 전달 하여 실제로 I / O를 수행하지 않는 모든 작업을 필터링 할 수 있습니다 . 이것은 목록이 덜 혼잡합니다
Marcin Orlowski

15

lsof( man lsof )를 사용할 수 있습니다 . 다음은 쓰기 위해 열려있는 모든 파일 목록을 반환합니다.

lsof | grep -e "[[:digit:]]\+w"

1
열려있는 파일과 실제로 액세스중인 파일은 서로 다른 두 가지입니다.
psusi

@psusi 쓰기 위해 열려있는 파일이 "액세스"되었을 가능성이 높습니다. 또한 맨 페이지를 통해 lsof를 학습하면 더 많은 정보를 검색 할 수 있습니다.
James Sumners

5
쓰기 위해 열린 파일은 특정 시점에 기록 될 수 있지만 반드시 지금은 아닙니다. 많은 파일이 열려 있지만 거의 기록되지 않습니다. 반면에, 작성중인 파일은 빠르게 열고 닫을 수 있으므로 lsof에 표시되지 않습니다. 어느 쪽이든 현재 어떤 프로세스가 실제로 디스크에 기록되는지 파악하는 데 도움이되지 않습니다.
psusi

위의 wfrom 명령을 사용하면 쓰기 전용 으로 열린 파일을 grep 할 수 있습니다 . 파일을 쓰기 위해 열 (읽기 u표시되지 않습니다)하지만, 그들은 또한 쓸 수 있습니다. 쓰기 및 읽기 + 쓰기를 위해 열린 파일을보고 싶다면 이것이 당신이 찾고있는 것이라고 생각합니다.lsof | grep -e "[[:digit:]]\+[wu]\{1\}"
Martijn

1
당신은 사용할 수 있습니다 @Martijn grep -e**w**피하기 일치에 [0-9]\+[wu]다른 열 내부

2

사용하십시오 strace.


6
특정 프로세스가 수행하는 작업을 알려주므로 어떤 프로세스가 수행 중인지 찾는 데 도움이되지 않습니다.
Gilles 'SO- 악한 중지'

2

특히 디스크 사용량이 적은 경우 짧은 액세스 회선이 빠르게 사라지지 않도록 배치 모드에서 iotop을 사용해야합니다. 리눅스에서 파일 시스템으로 파일 시스템 읽기 / 쓰기어떻게 기록합니까? 이 작업을 수행하는 방법을 보여줍니다.

지금까지 iotop가장 좋은 전체 솔루션입니다. 다음 명령은 디스크를 사용하는 모든 프로세스의 실시간 출력을 제공합니다.

iotop -bktoqqq -d .5

where: -b     is batch mode
       -k     is kilobytes/s
       -t     adds timestamp
       -o     only show processes or threads actually doing I/O
       -qqq   removes output headers
       -d .5  updates every .5 seconds

프로세스 ID가 있으면 다음을 사용하여 파일을 찾을 수도 있습니다.

 lsof -p $PID

1
이 답변은 위의 (매우 오래된) 답변과 어떻게 다릅니 까? 이전 질문에 대답 할 때는 이전 답변과 어떻게 다른지 설명하는 것이 좋습니다. 이것은 독자가 답을 정렬하는 데 도움이됩니다.
Stephen Rauch

이것을 지적 해 주셔서 감사합니다. 귀하의 의견을 고려 하여이 답변을 편집했습니다.
Frank Breitling
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.