Detox・Simulator・派生产物同期・ディスク水位は、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」。
- 週次:空き GB・IO wait・Detox ブート p95。
- 黄/赤は SKU 固定。無承認で黄跨ぎは失敗。
- 赤は新規並列停止・不安定ノード切離し。
- WAN 拡大の前に発生リージョンへ M4 追加。
- ランタイム大更新のたびに表を見直し。
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。料金・ヘルプ・購入。
運用目安。 数値は自社トレースで再調整。