본문 바로가기
Infra2026년 6월 18일2분 읽기

리눅스 디스크가 꽉 찼다 — 범인 찾기

YS
김영삼
조회 112
리눅스 디스크가 꽉 찼다 — 범인 찾기

핵심 요약

"No space left on device"는 ① 큰 파일/로그가 쌓였거나 ② 삭제했지만 프로세스가 잡고 있는 파일(df는 차 있는데 du는 적음) ③ inode 고갈(용량은 남았는데 파일 못 만듦) 중 하나다. df로 어느 마운트가 찼는지부터 본다.

1. 추적

df -h            # 어느 파티션이 찼나
df -i            # inode 고갈 확인
du -xh / 2>/dev/null | sort -h | tail -20   # 큰 디렉토리 top
# 삭제됐지만 열린 파일
lsof +L1 | sort -k7 -n | tail

2. 흔한 범인

증상원인
du는 적은데 df는 가득삭제됐지만 열린 로그 → 프로세스 재시작
용량 남는데 못 씀inode 고갈(작은 파일 폭증)
특정 폴더 비대로그·캐시·코어덤프

3. 함정

  • > logfile로 비우지 말고, 열린 파일이면 프로세스 재시작이나 logrotate copytruncate
  • rm 후에도 안 줄면 그 파일을 연 프로세스를 찾아 재시작
  • 도커 환경은 docker system df·prune로 이미지/볼륨 정리

자주 묻는 질문

du와 df 결과가 다른데요?

삭제됐지만 프로세스가 아직 핸들을 쥔 파일은 df엔 잡히고 du엔 안 보입니다. lsof +L1로 찾아 해당 프로세스를 재시작하면 공간이 반환됩니다.

용량은 남았는데 파일이 안 만들어져요.

inode 고갈입니다. df -i로 확인하고, 작은 파일이 폭증한 디렉토리(세션·캐시·메일 큐)를 정리하세요.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록