OS/Linux

[Linux] df와 du 용량 차이가 클 경우 해결 방법 _lsof | grep deleted

yeit 2023. 8. 25. 10:14
728x90

 

df, du란?

  • df는 파일 시스템 전체의 디스크 사용 및 여유 공간을 알려주는 명령어
# df -h
  • du는 입력받은 경로(디렉토리 혹은 파일)의 디스크 사용량을 보여주는 명령어
# du -h /<경로>

 

문제 발생 사항

  • df와 du 용량 차이가 클 경우
$ df -h

$ du -sh * | sort -rh
  • 루트 파일시스템이 100%로 꽉 찼을 경우
$ df -h

 

 

문제 발생 원인

  • 리눅스 시스템에서 파일을 삭제하더라도 해당 파일을 열고 있는 프로세스가 있다면 파일은 실제로 디스크에서 삭제되지 않는다.
  • 이런 파일은 삭제되었지만 여전히 프로세스가 사용 중인 상태이기 때문에 디스크 공간이 정리되지 않은 채로 남아있을 수 있다.

 

 

해결 방법

방법1. 서버 재시작

방법2. lsof | grep deleted로 삭제되었는데 종료되지 않은 프로세스를 찾아 kill 명령어로 삭제해주기

- lsof : list open files의 약자로 프로세스가 열려있는 파일을 표시해준다.

$ lsof | grep deleted

$ kill -9 <PID>
#용량 줄어든 것을 확인
$ df -h

참고)

  • PPID는 프로세스를 생성한 부모 프로세스의 식별자
  • PID는 각 프로세스의 고유한 식별자
  • kill할 때는 PID !

 

728x90