얼마 전, 제가 관리 중인 Ubuntu 서버에서 갑작스럽게 여러 서비스가 멈추고, SSH 연결 후 명령어 실행이 지연되는 현상이 발생했습니다. 처음에는 단순한 일시적 부하라고 생각했지만, 확인해보니 루트 파일 시스템의 디스크가 꽉 차 있는 상황이었습니다. 정확히는 /dev/mapper/ubuntu--vg-ubuntu--lv
가 100% 사용 중이었고, 이로 인해 여러 문제가 동시다발적으로 발생하고 있었습니다.
1. 증상: 서버 응답 지연 및 서비스 중단
문제가 발생했을 당시, 다음과 같은 현상이 나타났습니다.
- 시스템 로그가 더 이상 기록되지 않음
- crontab 실행 실패
- nginx, postgresql 등 서비스 재시작 실패
df
,top
명령어 실행조차 느림
2. 원인 진단
SSH로 접속한 후 가장 먼저 디스크 사용량을 확인했습니다.
df -h
결과는 다음과 같았습니다:
/dev/mapper/ubuntu--vg-ubuntu--lv 100%
루트 파티션이 LVM 구조로 되어 있었고, 그 파티션이 꽉 차면서 시스템 전반에 문제가 발생한 것이었습니다.
3. 원인 추적: 어떤 디렉터리가 용량을 잡아먹고 있는가?
다음 명령어로 루트 디렉터리 하위에서 가장 많은 용량을 차지하는 디렉터리를 확인했습니다.
sudo du -h --max-depth=1 / | sort -hr | head -n 10
출력 결과 /var
와 /snap
이 상당한 공간을 차지하고 있었습니다.
특히 /var/log
와 /var/lib/snapd/snaps
디렉터리가 의심되었습니다.
4. 조치 사항: 공간 확보
(1) APT 캐시 삭제
sudo apt clean
캐시 파일들을 정리했지만 큰 효과는 없었습니다.
(2) 로그 파일 정리
sudo journalctl --vacuum-time=7d
7일이 지난 로그 파일을 삭제해 약 1GB 가량 확보했습니다.
추가로 압축된 로그들도 삭제했습니다.
sudo rm -rf /var/log/*.gz /var/log/*.[0-9]
(3) Snap 패키지 정리
snap list --all
이전 버전이 남아있는 snap 패키지들이 많았고, 이를 제거하여 공간을 크게 확보할 수 있었습니다.
sudo snap remove <패키지명> --revision=<버전>
(4) 임시파일 삭제
sudo rm -rf /tmp/*
(5) 사용자 휴지통 비우기
rm -rf ~/.local/share/Trash/*
5. LVM 루트 파티션 확장 (남은 공간이 있는 경우)
위 작업으로 3~4GB 정도 여유 공간을 확보하긴 했지만, 용량 부족이 자주 반복될 수 있다고 판단되어 LVM 자체의 크기도 확장하기로 했습니다.
우선 볼륨 그룹의 여유 공간을 확인했습니다.
sudo vgs
sudo lvs
여유 공간이 존재했기 때문에, 다음 명령어를 실행했습니다.
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
이로써 루트 파티션의 전체 용량이 약 10GB 이상 확장되어 여유롭게 운영이 가능해졌습니다.
6. 마무리
이번 경험을 통해 다음과 같은 교훈을 얻었습니다:
- LVM 구조라면 디스크 확장이 유연하므로, 초기 설정 시 이를 활용하는 것이 좋다.
- 주기적인 디스크 사용량 체크가 매우 중요하다.
snap
,journalctl
,/tmp
등 자동으로 쌓이는 파일들을 주기적으로 정리해야 한다.- 용량이 부족한 상황에서는 시스템의 거의 모든 기능이 마비될 수 있으므로, 사전 예방이 중요하다.
'개발 (Development) > Linux' 카테고리의 다른 글
[Linux] Bash에서 `source` 명령어 사용법 정리 (0) | 2025.09.07 |
---|---|
[Linux] 서버 Memory Swap 사용량 (1) | 2025.02.17 |
[Linux] ll 명령어 완벽 가이드 (0) | 2025.02.17 |
[Linux] 서버 캐시 정리 명령어 (0) | 2024.12.21 |
[Linux/Ubuntu 20.04 LTS] 부팅할 때 특정 파일을 실행 (0) | 2024.05.07 |