2026年企業Mac CI:Xcode並行テストとTest Plan分割でシミュレータ争奪を避ける

同一ホストでxcodebuild testを並べると、CPUより先にシミュレータRAMブートI/Oが衝突しやすい。Test Planで縦割りし、ジョブ境界でランタイム系を分けると取り合いが減る。前提は Mac CI リソースプール記事、境界設計は Actions マルチランナー統合 参照。

1. Test Plan 分割とシミュレータの取り合い

単一Planは再実行が重く、細切りすぎるとブート回数でディスクが先に詰まる。近い所要のスイートを束ね、OSと画面サイズはPlan内で揃え、別ジョブは別ランタイム系へ。-maximum-parallel-testing-workersRAMと同時ブート上限から逆算し、OOM手前で止める。

目安:同時台数は「RAM÷1ランタイム実測ピーク」より小さめ。

2. 高メモリノード vs worker 数

高RAM1台はキャッシュ再利用に強いが影響半径が広い。中RAM×複数workerは隔離は強いがキャッシュ効率は落ちやすい。Apple Siliconは統合メモリが支配的なので、同時N台の実測で圧が出る地点を決め、RAM増かホスト分割かを選ぶ。スワップが出た瞬間に全体が遅れる。

3. ディスク水位(DerivedData・ログ)

並行テストはDerivedDatadfが跳ねやすい。-derivedDataPathをRUN_ID配下にし、終了時TTL掃引。空き20%未満で新規停止などしきい値をSLO化。ランタイム更新後はスナップショットを一度捨てる。

4. 比較FAQ(短答)

Q: worker だけ増やす? A: RAM/ディスク不足だとフレーク増。Q: Plan細切り? A: ブートI/Oが支配的なら統合。

5. ミニチェックリスト

  • 同時台数・workers がRAM実測と整合しているか
  • Plan がOS/デバイス族で過度に混在していないか
  • derivedDataPathとdfアラートがRUN単位か

テストを静かに回すなら専有メモリとmacOS

並行シミュレータは統合メモリが効き、共有だと隣ジョブのブートでI/Oが跳ねやすい。Mac mini M4は帯域と約4W級アイドルで据え置き向き。macOSはXcodeとシミュレータ同最適化とGatekeeper/SIPで説明しやすい。一台で十分な起点です。 Macstripe ホーム で専有ノードを確認し、今すぐ購入からどうぞ。