공유 원격 Mac에서 동시 Git 클론npm 등 패키지 풀이 겹치면 디스크 IO·메타데이터 경합으로 전체가 느려집니다. 빌드 리소스 풀 운영용 디스크 워터마크, 큐·락, 타임아웃·재시도를 표·시나리오로 정리했습니다. 심화는 풀 가속·캐시 전략 글을 참고하세요.

리소스 풀 용량과 동시성 모델

풀은 CPU보다 동시 디스크 작업이 먼저 포화되는 경우가 많습니다. 전역 동시 상한, 리포별 세마포어, fetch → install → build 단계 분리로 나눕니다.

지표 소규모 풀(1~2대) 중규모(공유 러너 3~8잡) 비고
동시 무거운 Git fetch/clone1~22~4SSD여도 대형 레포는 2병렬 이상부터 iowait 급증 가능
동시 npm ci / yarn11~2node_modules 쓰기 폭발 시 1로 제한 권장
워크스페이스 정리 주기매 잡 후매 잡 또는 일 배치실패 잔여물이 디스크를 먹음
CI job 전체 타임아웃풀 단계 합의 + 25~40%동일스크립트 재시도 상한보다 커야 함

셀프호스티드 CI에서는 라벨·큐 깊이로 디스크 집약 잡을 한 풀에 몰지 않게 나눕니다.

Git·npm 풀 대기열과 락

공유 캐시 동시 갱신은 손상·경합을 부릅니다. 워크스페이스는 분리하고, 공유 경로에는 flock을 겁니다.

실행 예: 전역 풀 세마포어(쉘)

flock -w 600 /var/run/mac-ci-git-pull.lock git fetch --all --prune — 대기 최대 600초, 초과 시 실패로 알림.

항목 권장 초깃값 조정 트리거
Git GIT_LFS_SKIP_SMUDGE + 후속 lfs pull 직렬화LFS 대역폭 민감 시 1웨이lfs 대기열 길이·실패율
npm maxsockets5~15 (기본보다 낮게)RTT 높음·패킷 손실
큐 대기 타임아웃(락 획득)300~900초잡이 자주 “대기만 하다 종료”면 상향
동일 브랜치 캐시 키커밋 SHA + lockfile 해시캐시 오염 빌드 시 키 엄격화

미러·재시도 파라미터는 풀 안정성 FAQ와 조합하세요.

디스크와 캐시 파티션 임계값

APFS 스냅샷·캐시 때문에 df %만으로는 실여유가 과대평가될 수 있어, 사용률 % AND 절대 여유 GB를 함께 씁니다.

워터마크 디스크 사용률(루트) 절대 여유(예시) 자동 동작 예
정보≥ 75%< 40GBSlack/로그만, 야간 정리 예약
경고≥ 80%< 30GB오래된 워크스페이스·캐시 LRU 삭제
큐 제한≥ 85%< 20GB신규 clone/대용량 brew·npm 잡 큐잉 또는 거절
하드 스톱≥ 90%< 10GB빌드 실패·수동 승인만 허용

캐시는 별도 경로로 모아 루트·DD·Docker가 밀어내지 않게 합니다. iOS 혼합 시 DD 매트릭스 임계를 같이 쓰세요.

약한 네트워크 타임아웃과 이어받기 전략

재시도는 지수 백오프+지터가 기본이며, CI job 타임아웃은 스크립트 상한보다 길게 맞춥니다.

구분 권장 범위 비고
스크립트 재시도 초기 대기2~4초지터 ±20%
백오프 배수2최대 대기 상한까지
최대 대기(한 회)60~120초레지스트리·Git 호스트 정책에 맞출 것
최대 시도 횟수(동일 단계)3~5회5회 넘기면 SLA·미러 점검
Git http.lowSpeedLimit / lowSpeedTime500~2000 B/s, 30~120s“가짜 살아 있음” 끊기
npm fetch-retry-mintimeout / maxtimeout10~20s / 60~120stimeout은 job 여유와 정합
A
디스크 85% 알림: 무거운 잡 보류 → du로 워크스페이스·캐시 확인 → LRU 정리 → 80% 이하에서 큐 재개. 로그는 고객 지원.
B
동시 클론 폭주: 전역 clone 상한 2·리포 flock·shallow 검토·풀 가속으로 왕복 축소.
C
약망 npm 실패: maxsockets 하향, 재시도·타임아웃 상향, 미러, 3회 실패 시 캐시 키 무효화 후 재빌드.

검수와 모니터링 지표

대시보드에 올릴 최소 지표:

  • iowait% (예: 35%·5분 지속 알림), 디스크 % + 여유 GB (표와 동일)
  • 풀 단계 p50/p95, 락 대기 p95, 단계별 재시도율

자주 묻는 질문(FAQ)

Q. SSD인데 병렬 clone이 느림?
A. 메타데이터·인덱스 병목입니다. shallow·sparse·캐시 워밍을 먼저 검토하세요.

Q. 90%에서도 빌드 허용?
A. 여유 GB·스왑을 감시하고 부분 쓰기 리스크를 문서화하세요.

Q. 노드 추가 vs 스펙 업?
A. 동시 풀 병목이면 노드 분리가 유효한 경우가 많습니다. 노드 의사결정 가이드 참고.

맺음말: 요약과 다음 단계

요약: 풀 안정성은 디스크 IO·동시 풀 설계가 핵심입니다. 80/85/90%·여유 GB, 큐·락, 백오프·타임아웃만 정리해도 실패·지연이 줄어듭니다. MacPull 원격 Mac로 전용 노드·플랜을 검토해 보세요.

연관 글은 블로그 목록, 운영 문의는 고객 지원, 구매 페이지에서 플랜 선택(로그인 불필요).

원격 Mac 빌드 풀을 안정적으로 — MacPull

전용 원격 Mac로 CI·동시 풀 경합을 줄이고, 요금·구매·도움말·블로그는 로그인 없이 이용할 수 있습니다.