디스크가 가득 찼는데 지울 게 없을 때

디스크가 가득 찼다는 경고를 받고 큰 파일을 찾아보지만 땅 그런 게 없는 경우가 있습니다. 보통 세 가지 중 하나입니다.

문제

용량이 차면 로그도 안 쓰이고 데이터베이스도 멈췉니다. 업무가 멈추는데 지울 것은 보이지 않습니다.

  • 큰 파일을 지웠는데 사용량이 그대로
  • 용량은 남았다는데 파일 생성이 안 됨
  • 로그가 쌓이는 위치를 몰라 무작정 지움
  • 재부팅하면 잠시 나아졌다가 다시 챰

원인

용량은 블록과 inode 두 가지로 소모되고, 삭제해도 열려 있는 파일은 반납되지 않기 때문입니다.

  • 삭제된 파일을 프로세스가 아직 잡고 있음
  • 작은 파일이 너무 많아 inode가 먼저 고갈
  • 마운트 지점 아래에 파일이 숨어 있음

해결책

순서대로 확인하면 대부분 10분 안에 원인이 나옵니다.

  • 먼저 블록 사용률과 inode 사용률을 모두 확인
  • 삭제되었지만 열려 있는 파일을 찾아 해당 서비스를 재시작
  • 디렉토리별 사용량을 상위부터 내려가며 범위를 좁힘
  • 마운트 지점을 잠시 풀어 그 아래에 파일이 있는지 확인
  • 로그는 지우지 말고 로그 로테이션 설정을 먼저 정리
  • 임시로 비운 뒤에는 반드시 증설 또는 보관 정책을 정리

현장에서 확인할 것

  • 블록과 inode 중 어느 쪽이 찼는지
  • 삭제되었지만 열려 있는 파일이 있는지
  • 로그 로테이션이 설정되어 있는지
  • 최근 사용량이 급격히 늘어난 시점

지우는 것으로 끝내면 다음 달에 또 같은 전화를 받게 됩니다.

Scroll to Top