![각 프로세스의 총 디스크 공간 활용도 계산](https://linux55.com/image/123974/%EA%B0%81%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%9D%98%20%EC%B4%9D%20%EB%94%94%EC%8A%A4%ED%81%AC%20%EA%B3%B5%EA%B0%84%20%ED%99%9C%EC%9A%A9%EB%8F%84%20%EA%B3%84%EC%82%B0.png)
각 프로세스가 소비하는 디스크 공간의 양을 결정하는 가장 좋은 방법을 찾고 있습니다. 내가 아는 한 내 앞에는 단 하나의 선택만이 남아 있었다. 즉, 모든 프로세스의 출력을 가져와 write_bytes
함께 추가합니다. /proc/<pid>/io
그러나 나는 이것을 함으로써 내가 얻은 총액이 df -h
내가 받은 것과 일치하지 않는다는 것을 발견했습니다.
답변1
다음과 같은 파이프라인을 사용하겠습니다.
iotop -qqq -b -Paok -n 2 -d 30 | sort -n -k6 -r | head -n 20
옵션:
-qqq
:제목과 요약을 인쇄하지 않습니다
-b
. : 배치 모드
-P
: 모든 Therads가 아닌 프로세스만 표시합니다
-a
. :누적 I/O
-k
:결과를 킬로바이트로 인쇄합니다
-n 2
. :내가 아는 한 실행 횟수는 처음 이후여야 합니다. >= 마지막 실행 2회 1초 미만
-d 30
: 실행 간 지연(이 경우 총 실행이라고도 함), 대략
| sort -n -k6 -r
: 열 6(총 쓰기)을 기준으로 숫자로 정렬 및 역순
| head -n 20
: 상위 20개만 표시 OK
노트: 사용된 전체 물리적 공간이 아닌 프로세스가 작성한 데이터의 양만 표시합니다. 프로세스가 동일한 20KB 파일에 초당 한 번씩 지속적으로 쓰는 경우 결국 20KB의 공간을 사용하게 되지만 30초 안에 총 600KB를 씁니다. 이 경우 내 프로세스가 기록하는 디렉터리를 모니터링합니다.du
답변2
당신이 사용할 수있는오토프. 그러면 각 프로세스의 실시간 디스크 사용량이 표시됩니다. CentOS/Fedora를 사용한다고 가정하면 이 작업을 수행할 수 있습니다.
$ sudo yum install iotop
그럼 그냥 전화하세요 iotop
.