DetoxSimulator・派生产物同期・ディスク水位は、Mac mini M4 跨区 CI では一枚の予算です。2026 年版の決定表1TB/2TB 受入リストだけに絞ります。

ブート嵐は CPU より先に APFS を圧迫します。DerivedData の共有は昇格ゲート必須。1TB では CoreSimulator+キャッシュが早めに黄帯へ入ります。

  • 並行上限: Simulator は RAM/フレームバッファ/ストレージの束。
  • 成果物: 二重ライター禁止。キューか単一昇格。
  • 水位: 緑のときだけ並列を広げる。

xcodebuild 側は Xcode Parallel Testing 稿、本稿は Detox に限定。

並行上限:Detox・Simulator セッション予算

表は「もう一本並列レーン」のM4 実コストの合意用です。

姿勢 Simulator 予算 DerivedData WAN ディスク
単一リージョン 16 GB 帯は 2〜4 同時から検証。 ジョブ別パス。DerivedData 共有禁止。 LAN 取得。跨区ウォーム依存を避ける。 週次ローテで 1TB 可。
多アプリ アプリ ID 直列+起動上限。 コンパイル後 RO スナップショット。 跨区キューは起動プローブに遅延枠。 大型 3 本以上で 2TB
跨区 ノード並行は下げ、台数で足す。 発生側で差分 rsync→検証後ブート。 --bwlimit で IO 飢餓回避。 WAN+Sim 同居は 2TB 既定。

派生产物同期:rsync パラメータ

ステージへ rsync(アーカイブ相当・部分・WAN --bwlimit)。共有は --delete 慎重。完了後 symlink/rename を一発rsync 稿

ヒント: rsync 終了コードを Detox セッションと同じ相関 ID で残す。

ロックとキュー

昇格は単一ライター(マージレーン/ルートロック/Nomad トークン)。読み取りは扇状可。共有書き込み区間は flock で短く。多テナ共用は Nomad・ビルドロック稿 と整合。

拡張戦略

安全なディスク水位でキューが伸びたらノード追加。利用率だけ見て並列を足さない。順序は「Simulator 上限↓→アプリシャード→2TB」。

  1. 週次:空き GB・IO wait・Detox ブート p95。
  2. 黄/赤は SKU 固定。無承認で黄跨ぎは失敗。
  3. 赤は新規並列停止・不安定ノード切離し。
  4. WAN 拡大の前に発生リージョンへ M4 追加。
  5. ランタイム大更新のたびに表を見直し。
2–4
16 GB M4 の初期並行。
70%
1TB 超え続け→ローテ前倒し。
80%
週次中央値→拡張レビュー。

1TB/2TB ディスク水位:受入チェックリスト

  • プレフライト: 空き GB 公開・黄未満は中止。
  • 上限: Detox セッションが表の SKU 行以内。
  • rsync: 差し替え前に checksum/mtime 検証。
  • ロック: 昇格ログに lock id。
  • 刈り込み: CoreSimulator/DerivedData の窓を自動化。
  • 解放: 失敗も 1h 以内に sim/tmp 解放。

まとめ:Detox 現実に合わせた並列 M4 を借りる

三本線:キュー・Simulator p95・APFS。キュー↑かつ緑→並列 M4。黄なら先にキャッシュ/rsync。料金ヘルプ購入

運用目安。 数値は自社トレースで再調整。
並列 iOS キャパシティ

Mac mini M4 で Detox レーンを拡張

1TB/2TBM4並列展開し、Simulator 予算を固定。関連:Xcode 稿rsync 稿Nomad 稿

並列 Mac ノードを申し込む プランを見る(ログイン不要) ヘルプセンター