핵심 결론: 싱가포르·일본·한국·홍콩·미동부·미서부의 전용 원격 Mac(M4 / M4 Pro)에서 「디스크가 거의 찼는데 빌드는 점점 느려진다」는 상황이 반복되면, 본문은 서명 가능한 답을 제공합니다. 1TB/2TB 확장, 캐시 거버넌스, 피크용 제2대 중 3택1 결정 매트릭스 + 6단계 Runbook + 3개 수위 임계값으로 선택하고 일/월/분기 리스와 연결합니다. 리전 지연·POC 전체 흐름은 반복하지 않고, 프로덕션 전 안정성 수용 이후 가장 흔한 다음 질문—디스크에 돈을 쓸지, 사용법을 바꿀지—에 답합니다.
df 퍼센트만 보고 디렉터리 귀속을 보지 않음: APFS 스냅샷, 로컬 Time Machine 스냅샷, 「기타 사용자」가 루트를 빨갛게 보이게 해도 Xcode를 느리게 하는 것은 단일 디렉터리의 선형 성장인 경우가 많습니다. 일괄 rm -rf 대신 계층 du 샘플링이 필요합니다.iostat에서 디스크 이용률이 장기 40% 미만인데 빌드가 느리면 병목은 병렬도 또는 링커 메모리입니다. M4 Pro 또는 제2대가 2TB보다 효과적입니다.6개 리전 전용 Mac의 강점은 물리 디스크 경계가 명확하다는 점이지만, 명확함이 workload에 자동 맞춤을 의미하지는 않습니다. Apple Silicon 통합 메모리에서는 디스크·메모리 압력이 동상으로 나타납니다: Simulator 병렬, Swift 증분 컴파일, 컨테이너 레이어 캐시가 IO와 RAM을 동시에 올립니다. 3택1 결정 없이는 「다시 디스크 비우기」와 「한 대 더 추가」 사이를 오가며 리스를 낭비하고 릴리스를 지연합니다.
다지역 노드 리스·비용 가이드는 「어느 국가·어떤 리스 기간」을, 본문은 이미 고른 노드에서 디스크 병목의 1차 처리 순서를 답합니다. CocoaPods/SPM 미러·디스크 체크리스트와 보완—의존성 최적화는 「가짜 만디스크」를 줄이지만 DerivedData·시뮬레이터 자산 거버넌스를 대체하지 못합니다.
| 시그널 | 우선: 캐시 거버넌스 | 우선: 1TB/2TB 확장 | 우선: 제2대 / Pro |
|---|---|---|---|
| 정리 후 7일 여유 <15% | du 회수 가능 >30%이고 표준 정리 미실행일 때만 | 기본: 구조적 성장(다중 브랜치 DerivedData) | CPU 큐 p95 동시 포화 |
| 단일 저장소 <8GB, Simulator OS 3+ | 미사용 runtime·디바이스 세트 제거 | 2+ 대형 OS 이미지 상주 | 병렬 UI 테스트 worker >2 |
| Monorepo + affected 활성화에도 매주 만디스크 | blobless·캐시 경로 점검 | 기본: 중간 산출물 디렉터리 격리 실패 | 빌드·테스트 디스크/기기 분리 필수 |
| 릴리스 피크 10–14일만 | 기본: 정리 + 스냅샷 내보내기 | 2주를 위해 분기 리스 고정 비권장 | 일/주 임대 제2대가 유리 |
| 2TB 후 iowait <8%인데 느림 | 디스크 주원인 아님, 확장 중단 | 거부: 디스크 추가 금지 | 기본: 연산/동시성 병목 |
메커니즘: APFS copy-on-write 때문에 대용량 디렉터리 삭제 후에도 「여유 공간」 표시가 즉시 회복되지 않을 수 있습니다(로컬 스냅샷 존재 시). 거버넌스 단계에 스냅샷 목록 확인을 포함하지 않으면 「200GB 지웠는데 df는 20GB만 회복」 같은 오판으로 확장을 선택하게 됩니다.
~/Library/Developer, DerivedData, CoreSimulator, ~/.gradle, ~/Library/Containers 등 계층 샘플, CSV 감사용 출력.# 디스크 Top 디렉터리 샘플링(원격 Mac에서 실행, WORK 경로 교체) export WORK="$HOME" df -h / echo "---- top dirs under Library/Developer ----" du -hd 1 "$HOME/Library/Developer" 2>/dev/null | sort -hr | head -12 echo "---- DerivedData total ----" du -sh "$HOME/Library/Developer/Xcode/DerivedData" 2>/dev/null echo "---- CoreSimulator ----" du -sh "$HOME/Library/Developer/CoreSimulator" 2>/dev/null
6개 리전 원격 Mac에서 디스크 결정의 본질은 압축 불가능한 working set과 압축 가능한 캐시를 분리하는 것입니다. 지울 수 있으면 거버넌스, 지울 수 없으면 확장 또는 분기, 지울 수 없고 연산도 포화면 디스크 추가를 멈추십시오—그것은 큐 병목에 대한 위로일 뿐입니다.
자체 Mac 호스팅·단기 클라우드 인스턴스는 「디스크」와 「운영」을 두 장의 청구서로 나누어 스냅샷·시뮬레이터 자산·공유 디스크의 복리를 과소평가하기 쉽습니다. 노트북 빌드 인계는 릴리스 주에 디스크와 절전 정책을 동시에 밟습니다. 전용 Apple Silicon, 예측 가능한 디스크 티어, 6개 리전 근접 노드가 필요한 팀은 본 매트릭스를 조달 부록에 넣고 MACCOME Mac 클라우드에서 1TB/2TB와 리스를 한 번에 맞추는 편이 임시 디스크 추가·무분별한 제2대보다 총소유비용이 낮고 CI·온콜이 같은 수위 언어를 공유합니다.
확장 또는 제2대가 확정되면 노드 리전과 리스 항목을 같은 리뷰에 가져오십시오. 가격·주기는 제품 페이지를 참고하고, 안정성 수용·Monorepo 글을 부록으로 남겨 릴리스 주에 용량과 파이프라인을 함께 논의하십시오.
FAQ
DerivedData를 지워도 디스크가 가득 찼습니다. 확장과 제2대 추가 중 무엇을 선택해야 하나요?
정리 후 7일 내 여유 15% 재하락, Developer 하위 디렉터리 du 비중이 높으면 1TB/2TB와 월간 리스를 우선 검토하십시오. CPU/메모리 큐도 포화되면 다중 빌드 풀 글을 참고해 제2대를 추가합니다. 티어·가격은 대여 가격을 참고하십시오.
2TB로 확장했는데도 빌드가 느립니다. 디스크 문제인가요?
반드시 그렇지는 않습니다. IO가 한가한데 컴파일이 느리면 안정성 수용·아키텍처 매트릭스로 연산과 네트워크를 구분하십시오. 운영 세부는 고객 센터를 참고하십시오.