티스토리 뷰

IT/AIX

[Unix]AIX df du의 차이 및 문제 해결

아희씬나 2018. 10. 17. 11:08

df 명령어와 du 명령어에 의한 디렉토리 사용량이 다르게 나온다.


계산 방식이 다르다

1. df -> 파일시스템의 디스크 블럭을 조회! 소위 말해 자유블럭을 계산하여 보여준다.

2. du -> 하위디렉토리로 이동하면서 stat()이라는 system call을 이용하여 디렉토리랑 파일에 할당된 블럭의 수를 더한다.

결론 : 그러다 보니, 차이가 생길 수 있다


다만, 최근에 겪은 문제로 큰 차이가 나는경우가 있다..

너무나도 dramatic 한크기...


확인해 보니 나의 경우는 이것...

1st - 정리되지 않은 file descriptor 때문(어릴적 배우던 C언어의 포인터를 생각하면 쉽다...)

A 프로세스가 B 라는 파일을 사용하고 있다..

이때 B를 지우거나 null을 넣으면, 단순 파일 B의 용량은 줄어들지만

포인터 처럼 A가 할당받아 사용하고 있는 용량은 그대로이다.

그래서 du는 B의 단순 용량을 계산하여 사용량을 지극히 작게 표시하겠지만

A 프로세스가 할당받아 사용하고 있는 영역으로 인하여

df로 검색하면 지우기 전 그대로의 용량을 사용하고 있는것으로 나온다..


해결법 : 해당 프로세스를 재기동(kill...이라던가..)시키면된다. 보통 데몬인 경우가 많다.. 물론, 재부팅도 답이지..


검색을 하다 보니 한경우가 더있다고 하는데..

2nd - dirty buffer 를 사용하고 있는 용량이 기재되는 경우로 sync로 해결 가

'IT > AIX' 카테고리의 다른 글

[UNIX] AIX 명령어 - lsdev  (0) 2019.05.10