Linux 디스크 용량이 갑자기 가득 찼을 때 확인하는 방법

Linux 서버를 운영하다 보면 어느 날 갑자기 “No space left on device” 오류가 발생하거나 로그가 저장되지 않고 서비스가 정상적으로 동작하지 않는 상황을 경험할 수 있습니다. 대부분은 디스크 공간 부족이 원인이지만, 단순히 저장 공간만 확인해서는 정확한 원인을 찾기 어렵습니다.

실제로는 로그 파일이 급격히 증가했거나 백업 파일이 누적되었을 수도 있으며, 삭제한 파일을 프로세스가 계속 사용하고 있어서 공간이 반환되지 않는 경우도 자주 발생합니다. 따라서 어떤 파일이나 디렉터리가 공간을 사용하고 있는지 순서대로 확인하는 것이 중요합니다.

이번 글에서는 Linux 서버에서 디스크 용량이 갑자기 증가했을 때 원인을 빠르게 찾는 방법을 알아보겠습니다.

디스크 공간이 부족해지는 대표적인 원인

다음과 같은 원인으로 저장 공간이 빠르게 증가할 수 있습니다.

  • 로그 파일 급증
  • 백업 파일 누적
  • 오래된 압축 파일
  • Docker 이미지 증가
  • 데이터베이스 로그 증가
  • Core Dump 파일 생성
  • 삭제되었지만 프로세스가 계속 사용하는 파일
  • 임시 파일 누적

원인을 먼저 확인한 후 정리하는 것이 안전합니다.

1. 전체 디스크 사용량 확인하기

가장 먼저 파일 시스템 전체 사용량을 확인합니다.

df -h

사용률이 90% 이상인 파티션이 있는지 확인합니다.

특히 다음 경로를 우선적으로 확인하는 것이 좋습니다.

  • /
  • /var
  • /home
  • /data

2. 어떤 디렉터리가 가장 많은 공간을 사용하는지 확인하기

용량이 큰 디렉터리를 찾습니다.

du -xh / --max-depth=1 2>/dev/null

또는

du -sh /*

어느 디렉터리에서 공간을 많이 사용하는지 빠르게 확인할 수 있습니다.

3. 가장 큰 파일 찾기

대용량 파일을 검색합니다.

find / -type f -size +500M

또는

find / -type f -exec ls -lh {} \; | sort -k5 -hr | head

수 GB 이상의 파일이 존재하는지 확인합니다.

4. /var 디렉터리 확인하기

대부분의 Linux 서버에서는 /var 디렉터리의 용량이 가장 많이 증가합니다.

du -sh /var/*

다음 디렉터리를 중점적으로 확인합니다.

  • log
  • cache
  • spool
  • tmp
  • lib

특히 /var/log는 가장 많이 공간이 증가하는 위치입니다.

5. 로그 파일 확인하기

로그 파일 크기를 확인합니다.

du -sh /var/log/*

로그 파일이 수십 GB 이상이라면 로그 로테이션(Log Rotation) 설정도 함께 확인하는 것이 좋습니다.

6. 삭제했지만 공간이 반환되지 않는 파일 확인하기

파일을 삭제했더라도 프로세스가 계속 사용하고 있으면 디스크 공간은 반환되지 않습니다.

lsof | grep deleted

이런 경우에는 해당 프로세스를 재시작해야 공간이 정상적으로 반환됩니다.

7. inode도 함께 확인하기

디스크 용량은 충분하지만 inode가 모두 사용되었을 수도 있습니다.

df -i

용량과 inode 사용률은 항상 함께 확인하는 것이 좋습니다.

8. Docker 사용량 확인하기

Docker를 사용하는 서버에서는 이미지와 컨테이너가 공간 부족의 원인인 경우가 많습니다.

docker system df

불필요한 이미지와 사용하지 않는 컨테이너가 많은지 확인합니다.

9. 열린 파일 확인하기

현재 어떤 프로세스가 큰 파일을 사용하고 있는지 확인합니다.

lsof

필요 없는 프로세스가 파일을 계속 점유하고 있다면 종료 여부를 검토합니다.

10. 최근 생성된 파일 확인하기

최근 생성된 파일을 확인하면 원인을 찾는 데 도움이 됩니다.

find / -mtime -1 -type f

최근 하루 동안 생성된 파일을 확인하여 어떤 작업이 디스크 공간을 증가시켰는지 추적할 수 있습니다.

실무에서 추천하는 점검 순서

디스크 공간 문제가 발생하면 다음 순서대로 확인하는 것이 가장 효율적입니다.

  1. df -h
  2. du -sh /*
  3. find -size
  4. /var 확인
  5. /var/log 확인
  6. lsof | grep deleted
  7. df -i
  8. docker system df
  9. lsof
  10. 최근 생성된 파일 확인

이 순서대로 확인하면 대부분의 디스크 공간 문제를 빠르게 해결할 수 있습니다.

점검할 때 주의할 사항

용량이 부족하다고 해서 바로 파일을 삭제하는 것은 권장되지 않습니다.

로그 파일이나 데이터베이스 파일처럼 서비스 운영에 반드시 필요한 파일일 수도 있기 때문입니다.

파일의 용도를 먼저 확인하고 현재 사용 중인 프로세스가 있는지 확인한 후 정리하는 것이 안전합니다.

자주 묻는 질문

df와 du의 차이는 무엇인가요?

df는 파일 시스템 전체의 사용량을 확인하는 명령어이며, du는 디렉터리와 파일별 사용량을 확인하는 명령어입니다.

파일을 삭제했는데 디스크 공간이 늘어나지 않습니다.

삭제된 파일을 프로세스가 계속 사용하고 있을 가능성이 있습니다.

다음 명령어로 확인할 수 있습니다.

lsof | grep deleted

로그 파일이 계속 커지는 이유는 무엇인가요?

애플리케이션 오류, 디버그 로그 활성화, 로그 로테이션 미설정 등이 대표적인 원인입니다.

마무리

Linux 서버에서 디스크 공간이 갑자기 부족해졌다면 df -h만 확인해서는 정확한 원인을 찾기 어렵습니다. du, find, lsof, df -i, docker system df 등을 함께 활용하면 어떤 파일이나 디렉터리가 공간을 차지하는지 빠르게 파악할 수 있습니다. 특히 삭제된 파일을 프로세스가 계속 사용하고 있는 경우는 실무에서 자주 발생하는 원인이므로 반드시 함께 확인하는 습관을 가지는 것이 좋습니다.

댓글 남기기