linux/기타

df 와 du 용량 체크 시 크기가 다르게 보일 경우

배움엔 끝이없다 2021. 10. 1. 08:47
728x90
반응형

 

문제가 발생 이유

보통 시스템을 오래 켜 둔 상태에서 발생한다고 한다. 그 이유는 특정 프로세스가 file descriptor 를 연 후에 file descriptor 가 가리키는 파일을 지웠는데 그 프로세스가 여전히 파일을 읽고 쓰고 있는 것이다.

 


실제 IO의 write, read 함수는 df 명령어와 관계가 있다. 

즉, 실제는 데이터가 비워져도 「df -h」상으로 데이터가 꽉 차있으면 더이상 파일 쓰기가 되지 않으니 아래 작업을 통해 용량 확보를 해야한다. 


 

따라서 lsof 명령어를 통해 문제가 있는 프로세스를 찾을 수 있다.

 

# lsof

또는 해당 디렉토리 검색

# lsof [DIRECTORY]

grep 명령어로 deleted 만 검색

# lsof | grep deleted

 

lsof 명령어를 통해 확인해보면 NAME 마지막에 (deleted) 라고 되어있는 프로세스를 확인할 수 있다.

이 경우에는 파일을 지웠지만 아직까지 남아있어 용량을 차지하고 있는 프로세스다.
나이따라서 해당 프로세스의 PID를 kill 명령어를 통해 죽이면 된다.

# kill -9 [PID]

그리고 다시 확인해보면 정상으로 돌아와있는 것을 확인할 수 있다.

df 명령어의 경우 특정 상황에서 정확한 실제 용량을 반영해주지 못하는 경우가 발생한다.
따라서 lsof 명령어를 통해 문제 있는 프로세스를 찾아 죽이는 방법을 통해 정상적으로 돌아오게 할 수 있다.

 

만약 위 과정을 진행했지만 용량이 비워지지 않는 경우 관련 프로세스 데몬을 재시작하거나 리부팅을 해야한다.

 

 

 

728x90
반응형
LIST

'linux > 기타' 카테고리의 다른 글

nGrinder 설치 (부하 테스트)  (0) 2022.03.25
CentOS vnc 설치 및 사용 (Tigervnc)  (0) 2021.10.14
stress 테스트  (0) 2021.10.01
lsync 설치 및 설정 (실시간 동기화)  (0) 2021.08.31
sftp 상위 디렉터리 접근 제한  (0) 2021.08.31