Saas프로젝트를 진행하며 PM들이 마케팅을통해 유저를 유입시켜 동시사용자수가 200여명을 넘어갈때쯤 다음과같은 문제가 발생했다.
PM2 | [Error: ENOSPC: no space left on device, write] {
PM2 | errno: -28,
PM2 | code: 'ENOSPC',
PM2 | syscall: 'write'
PM2 | }
인스턴스의 디스크가 꽉 찬것으로보이나 프리티어를 사용하고있는상황이고 스펙업을하기에는 개인적으로 부담해야하는 금액이 커져서 최대한 용량을 확보해보기로했다.
sudo apt-get install logrotate
/etc/logrotate.d/pm2
파일생성 후 아래 작성
/home/ubuntu/.pm2/logs/*.log {
size 100M
rotate 7
compress
delaycompress
missingok
notifempty
}
df -h
디스크용량 확인
sudo du -a / | sort -n -r | head -n 10
이 명령어는 루트 디렉토리에서 시작하여 모든 디렉토리와 파일의 디스크 사용량을 계산하고, 사용량이 가장 큰 항목 10개를 내림차순으로 출력한다.
로그 파일이 많은 공간을 차지하고 있다면, 일부 로그 파일을 수동으로 삭제하여 공간을 확보할 수 있다. 또한 캐시 디렉토리와 임시 파일도 공간을 차지할 수 있으므로, 이러한 파일을 삭제하면 일부 공간을 확보할 수 있다.
sudo apt-get clean
임시파일과 캐시를 정리해준다.
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
불필요한 시스템 로그 및 캐시를 정리한다. 아래는 3일이전의 로그를 제거한다.
sudo journalctl --vacuum-time=3d
불필요한 패키지와 종속성을 제거한다.
sudo apt-get autoremove
이렇게 해서 불필요한 파일들을 삭제해줌으로써 용량을 확보하였다.