top of page

Cloud9의 디스크 여유 공간 대응

  • 2일 전
  • 2분 분량

디버그를 위해 테스트 Run 했을 때, 다음 메시지가 표시되었습니다.

No space left on device

얼마 전에 EBS 볼륨 확장을 했는데 왜!? 라고 생각하며,

우선 볼륨 전체의 사용 상황을 확인했습니다. 볼륨의 사용 상황 확인은 df 명령을 실행합니다.

볼륨 이용 상황 확인

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        484M     0  484M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  464K  491M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       35G   34G    0G  99% /
tmpfs            99M     0   99M   0% /run/user/1000

파일 시스템 /dev/xvda1이 99% 사용되어, 여유 공간이 없는 상태였습니다. EBS를 확장하면 해결되지만, 불필요한 파일 삭제나 임시 파일 삭제로 대응을 진행합니다.

용량이 큰 파일 확인

다음 명령으로 500MB 이상의 파일을 검색합니다. 로그 파일들이 수상하다고 보고, /var/log의 내용을 확인합니다.

find /var/log -size +500M | xargs ls -l | sort -rn

journal 로그 삭제

journal 파일이 꽤 컸기 때문에, journal의 파일 크기 최댓값을 journald.conf에 추가해 설정합니다

$ sudo vi /etc/systemd/journald.conf
SystemMaxFileSize=300M

conf 파일을 고쳐 쓰는 것만으로는 반영되지 않으므로 서비스를 재시작하고, journalctl의 로그를 삭제

$ sudo systemctl restart systemd-journald
$ sudo journalctl --vacuum-size=300M

df 명령으로 볼륨을 확인하면, 조금 나아지긴 했지만 아직 여유 공간은 적은 상태였습니다.

Yum 캐시 정리

다음 명령으로 /var 이하 디렉터리의 용량도 확인합니다.

$ sudo du -sh /var/*

/var/cache에 700MB 정도 사용되고 있었으므로 캐시 정리를 시도합니다. yum이나 APT 등이 사용한 용량이 큰 패키지 파일이 쌓여 있을 가능성이 있습니다. 다음 명령으로 yum의 캐시를 정리합니다.

$ sudo yum clean all

이 명령은 필요한 파일을 남긴 채로 캐시 정리를 해 주므로, rm 명령 등으로 삭제하는 것보다 안전합니다.

이 처리로 캐시 파일도 작아졌지만 그래도 아직 용량 부족.

사용하지 않는 docker 리소스 삭제

$ sudo du -sh /var/*

로 확인하면, /var/lib/ 가 큰 용량을 쓰고 있음을 알 수 있습니다. 하지만 lib라는 이름이 붙은 디렉터리를 건드리는 것은 조금 망설여집니다.

$ sudo du -sh /var/lib/*

/var/lib 내를 확인하면 /var/lib/docker의 용량이 지배적으로 크다는 것을 알 수 있습니다. 이 파일에는 docker의 컨테이너나 볼륨, 이미지 등의 객체가 저장되어 있습니다.

Cloud9에서 테스트 실행하는 경우는 다시 컨테이너화되면 되므로, 이미 정지된 컨테이너를 다음 명령으로 삭제해 버립니다.

$ docker system prune -a
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] 

・정지된 모든 컨테이너

・적어도 1개의 컨테이너에서 사용되지 않는 모든 네트워크

・적어도 1개의 컨테이너가 연결되어 있지 않은 모든 이미지

・모든 빌드 캐시

가 삭제되는데 계속해도 되는가? 라는 경고가 나옵니다.

진행하려면 「y」를 입력하고 Enter

삭제된 이미지가 표시되고, 마지막에 다음과 같이 삭제되어 이용 가능해진 볼륨이 표시됩니다.

Total reclaimed space: 22.108GB

볼륨 이용 상황 재확인

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        484M     0  484M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  520K  491M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       35G  7.3G   28G  21% /
tmpfs            99M     0   99M   0% /run/user/1000
tmpfs            99M     0   99M   0% /run/user/0

무사히 여유 공간을 확보할 수 있어, 테스트 Run도 가능해졌습니다.

 
 
 

댓글


© Copyright ROBIN planning LLC.

bottom of page