디스크가 가득 찼다는 경고를 받고 큰 파일을 찾아보지만 땅 그런 게 없는 경우가 있습니다. 보통 세 가지 중 하나입니다.
문제
용량이 차면 로그도 안 쓰이고 데이터베이스도 멈췉니다. 업무가 멈추는데 지울 것은 보이지 않습니다.
- 큰 파일을 지웠는데 사용량이 그대로
- 용량은 남았다는데 파일 생성이 안 됨
- 로그가 쌓이는 위치를 몰라 무작정 지움
- 재부팅하면 잠시 나아졌다가 다시 챰
원인
용량은 블록과 inode 두 가지로 소모되고, 삭제해도 열려 있는 파일은 반납되지 않기 때문입니다.
- 삭제된 파일을 프로세스가 아직 잡고 있음
- 작은 파일이 너무 많아 inode가 먼저 고갈
- 마운트 지점 아래에 파일이 숨어 있음
해결책
순서대로 확인하면 대부분 10분 안에 원인이 나옵니다.
- 먼저 블록 사용률과 inode 사용률을 모두 확인
- 삭제되었지만 열려 있는 파일을 찾아 해당 서비스를 재시작
- 디렉토리별 사용량을 상위부터 내려가며 범위를 좁힘
- 마운트 지점을 잠시 풀어 그 아래에 파일이 있는지 확인
- 로그는 지우지 말고 로그 로테이션 설정을 먼저 정리
- 임시로 비운 뒤에는 반드시 증설 또는 보관 정책을 정리
현장에서 확인할 것
- 블록과 inode 중 어느 쪽이 찼는지
- 삭제되었지만 열려 있는 파일이 있는지
- 로그 로테이션이 설정되어 있는지
- 최근 사용량이 급격히 늘어난 시점
지우는 것으로 끝내면 다음 달에 또 같은 전화를 받게 됩니다.
