트러블 슈팅 ➂ Cilium과 mTLS 도입으로 네트워크 레벨의 격리 및 한도 제한, 우회와 위조 차단

여유 공간 25GB에서 192GB가 되기까지 지운 것들

어느 날 460GB 중 25GB만 남았다

빌드가 느려지고 디스크 부족 경고가 뜨기 시작해서 확인해 보니 460GB 중 여유 공간이 25GB밖에 남지 않았더라고요.

그래서 날을 잡고 대청소를 했습니다. 결과부터 말하면 이렇습니다.

항목청소 전청소 후
사용량392GB219GB
여유 공간25GB192GB

무엇이 공간을 먹고 있었나

용량이 큰 순서대로 지운 항목들이에요.

항목용량
Codex CLI 스테이징 파일69GB
게임 (MapleStory)51GB
iOS 시뮬레이터 런타임42GB
iOS 시뮬레이터 디바이스13GB
Spotify 캐시11GB
Docker 컨테이너7GB
Xcode iOS DeviceSupport5.6GB
Hugging Face 캐시4.9GB
휴지통2.9GB

1위는 의외로 Codex CLI가 남긴 스테이징 파일이었습니다. 쓰는 줄도 모르고 69GB가 쌓여 있었어요. 😅

그리고 iOS 개발자라면 시뮬레이터 런타임과 디바이스만 합쳐도 55GB라는 점이 눈에 띕니다.

시뮬레이터는 rm -rf로 지우면 안 된다

시뮬레이터 런타임은 /Library/Developer/CoreSimulator/Volumes 아래에 있는데, 이 파일들은 read-only APFS 볼륨으로 마운트된 상태입니다.

그래서 rm -rf로 지우면 제대로 지워지지 않아요. 대신 Xcode가 제공하는 simctl을 쓰면 언마운트까지 알아서 처리해 줍니다.

# 시뮬레이터 런타임 전부 삭제 (언마운트까지 처리) xcrun simctl runtime delete all # 시뮬레이터 디바이스 전부 삭제 (메타데이터까지 정리) xcrun simctl delete all

런타임 삭제는 비동기로 진행돼서, 명령 직후 xcrun simctl runtime list를 보면 (Deleting) 상태로 떠 있다가 잠시 뒤 사라집니다.

휴지통이 안 비워질 때

휴지통 안에 root 소유의 앱 번들이 있으면 일반 rm은 에러 없이 조용히 실패합니다. 이럴 땐 sudo로 마저 지워야 해요.

sudo rm -rf ~/.Trash/*

대신 치러야 할 비용

지운 만큼 나중에 다시 받아야 하는 것도 있습니다.

  • 시뮬레이터 런타임이 0개가 되어서, 다음에 쓸 때 약 16GB를 다시 내려받아야 해요.
  • Docker 이미지와 볼륨도 전부 지웠기 때문에 다시 pull 해야 합니다.

그래도 매번 디스크 경고를 보는 것보다는 훨씬 낫네요!

정리

  • 저장공간 부족하면 ~/Library 아래 캐시와 개발 도구 산출물부터 의심하기
  • 시뮬레이터는 항상 xcrun simctl로 지우기
  • 휴지통이 안 비워지면 root 소유 파일인지 확인하기

읽어주셔서 감사합니다. 🙌