반응형
df로 용량이 의심될때 lsof로 확인해 보자!!!
disk 사용량이 100%라고 떠서 서버가 제대로 동작안하는 문제가 발생했다.
그러나 실제적으로 확인해보면 용량을 잡고있는게 없다...
df 명령의 결과가 실제 디스크 용량을 반영하지 못하는 경우는
시스템을 오랫동안 리부팅 없이 사용하는 경우에 흔히 발견되곤 합니다.
이런 경우에는
- du 명령으로 확인해 보면 사용량이 많지 않은데,
- df 명령으로 확인해 보면 남은 용량이 거의 없습니다.
문제 원인:
특정 프로세스가 file descriptor 를 열고 file descriptor가 가리키는 파일이 지워지고 그 프로세스가 여전히 file descriptor 를 열어놓고
계속해서 write 를 하고 있기 때문입니다.
해결 방법:
lsof 명령으로 쉽게 찾을 수 있습니다. (root 사용자)
/home 파티션이 100% 사용중이라면 lsof /home 이라고 하면 /home 파티션에 관련된 정보만 보여줍니다.
각 컬럼정보.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
SIZE/OFF 컬럼에 나오는 값이 파일 용량입니다.
이 용량이 비 정상적으로 큰 라인을 찾아서 PID 를 확인 후 lsof -p PID로 확인해 보면, 해당 프로세스에 대한 정보를 확인할 수 있습니다.
프로세스를 kill 명령으로 죽이면, kill -9 PID -> df 결과가 정상으로 돌아옵니다 ^^
요약:
du 명령은 파일시스템을 읽어서 정보를 보여주기 때문에 정확하지만 읽어야 할 정보가 많을 경우 응답이 느림.
df 명령은 응답이 빠르지만, 특정 상황에서 실제 용량을 반영해 주지 못하는 경우가 발생할 수 있음.
lsof 를 이용해서 문제의 프로세스를 찾고, kill 명령으로 프로세스를 종료시켜도 되지만.
시스템 리부팅이 가능하다면, 리부팅을 해 주는 것도 방법.
반응형
'Linux' 카테고리의 다른 글
su 명령어 오류 (0) | 2022.03.21 |
---|---|
linux 종료와 재기동 (0) | 2022.03.21 |
linux 시간 동기화 (0) | 2022.03.21 |
CenOS6 Docker 설치 (0) | 2022.03.21 |
OpenSSL 업그레이드하기 (0) | 2022.03.21 |