728x90
반응형
리눅스에서 디스크 용량을 확인할 때 df 명령어로 확인했을 때 용량이 컸는데 du 명령어로 확인하니까 용량이 작았다.
파일을 삭제했는데 df에 반영이 되지 않은 것이다.
예를 들어, /var 용량의 경우
df 명령어로 확인했을 때 사용중인 공간이 31G 였다고 하면
du 명령어로 확인해보니 사용중인 공간이 10G 밖에 되지 않는다.
이 문제가 발생하는 이유는
보통 시스템을 오래 켜 둔 상태에서 발생한다고 한다.
그 이유는 특정 프로세스가 file descriptor 를 연 후에 file descriptor 가 가리키는 파일을 지웠는데
그 프로세스가 여전히 파일을 읽고 쓰고 있는 것이다.
따라서 lsof 명령어를 통해 문제가 있는 프로세스를 찾을 수 있다.
우선, 문제가 있는 디렉토리의 열린 파일 목록을 검색한다.
# lsof
또는 해당 디렉토리 검색
# lsof [DIRECTORY]
grep 명령어로 deleted 만 검색
# lsof | grep deleted
lsof 명령어를 통해 확인해보면 NAME 마지막에 (deleted) 라고 되어있는 프로세스를 확인할 수 있다.
이 경우에는 파일을 지웠지만 아직까지 남아있어 용량을 차지하고 있는 프로세스다.
따라서 해당 프로세스의 PID를 kill 명령어를 통해 죽이면 된다.
# kill -9 [PID]
그리고 다시 확인해보면 정상으로 돌아와있는 것을 확인할 수 있다.
df 명령어의 경우 특정 상황에서 정확한 실제 용량을 반영해주지 못하는 경우가 발생한다.
따라서 lsof 명령어를 통해 문제 있는 프로세스를 찾아 죽이는 방법을 통해 정상적으로 돌아오게 할 수 있지만
시스템 재시작이 가능하다면 재시작하는 것도 하나의 방법이 될 수 있다.
[참고 사이트]
728x90
반응형
'리눅스 > Linux' 카테고리의 다른 글
리눅스 하드 링크(hard link)와 심볼릭 링크(symbolic link) (0) | 2020.12.14 |
---|---|
리눅스 hostname 변경하기 (centos7) (0) | 2020.10.12 |
리눅스가 설치된 노트북 덮개를 덮어도 안 꺼지는 방법 (CentOS 7) (0) | 2020.09.25 |
리눅스 파일 권한 (Permission) (0) | 2020.09.16 |
리눅스 오픈 가능한 파일 갯수 제한 확인하기 (0) | 2019.10.03 |