はじめに
五地域に並列XCTestを載せるほど、CPUグラフより先に効くのがxcodebuildの列と、シミュレータごとに膨らむDerivedDataです。予算重視のiOS自動化やリリース直前QAでは、待ち時間とディスクI/Oが請求説明の中心に移ります。
本稿はシンガポール・東京・ソウル・香港・米東のいずれでも通じる順序として、列を短くし、次にストレージ、最後にSoCを厚くする考え方を整理します。M4 16GB/256、M4 24GB/512、M4 Pro 64GB/2TBと、1TB/2TB拡張の境界を明示します。
五地域での席割りとTCOの整理は、次の記事で体系化しています。 詳しく:自調達Macか五リージョンか、M4と拡張の節約順
夜間Cronとdoctor運用でディスクを先に伸ばす実例はこちらも参照ください。 詳しく:OpenClaw v2026.5.xと五地域1TB/2TB拡張の運用
xcodebuildの列が効く理由
並列はスレッド数を増やすだけではなく、リンクやUI起動が一列に重なると、Activity Monitorに余裕があってもジョブは順番待ちになります。スモーク・統合・UI行列・アーカイブを別ラベルに分け、同じホストに混ぜないのが最優先です。
キュー深さ・空きディスク・同時シミュレータ数のうち二つが悪いときにM4 Proへ飛ぶと、多くの場合は予算の漏れになります。
五地域のどの席でも、xcodebuild testの同時本数は一本ずつ増やして計測し、GitHub Actionsや自前ランナーのラベルと実ホストの対応表を共有しておくと、夜間の説明が楽になります。
DerivedDataとSSD(1TB/2TB)
256GBは二世代のXcodeと少数ランタイムが同居した時点で掃除争いが始まります。1TBは夜間の温かいキャッシュを残したまま週次リリースを回しやすく、2TBは長期ブランチと成果物を同席させるか、APFSスナップショットを併用する構成向きです。
空き容量があってもIOだけが伸びるときは、スナップショットや大きなログの滞留を疑ってからSoCを上げると説明が素直になります。
節約ブレークのマトリクス
以下はルーティングの目安です。モジュール数や並列度で前後します。
| 構成 | 向くジョブ | 典型の詰まり | 次に金をかける順 |
|---|---|---|---|
| M4 · 16GB / 256GB | ヘッドレスXCTestのシャード、Lint、単一シミュレータのスモーク | CPUより先にディスク逼迫 | 1TBまたは第二レーン → その後にPro検討 |
| M4 · 24GB / 512GB | 同時2〜3シミュレータ、中規模の統合 | UIと単体の重なりでRAM | UI専用ホスト分離 → 1TB/2TBでIO |
| M4 Pro · 64GB / 2TB | 広い端末行列、大きなモジュール、リリース週の重複レーン | デフォルトランナーにすると遊休コスト | 列とディスクを直した上でCPU+RAMが同時に張り付くなら採用 |
二本の控えめなレーンは、一台のヒーロー機より詰まったXCTestのバックログを早く消化しやすいことが多いです。
五地域での実効テスト時間
ミラー・Git・シンボル取得の経路が既にある都市を優先し、速いMacを遠いリージョンに置いてもダウンロードで溶けるのを避けます。リリース週は副次リージョンに予備レーンを一本置くと説明が楽です。
同一リージョン内でも、成果物のアップロード先とテストログの退避先を分けると、夜間ジョブ同士のディスク競合が減ります。
Mac miniとmacOSがXCTest艦隊の芯になる理由
数時間走るスイートでは、Apple Siliconのユニファイドメモリと読みやすいサーマル挙動が効きます。macOSはツールチェーンの前提そのものであり、Gatekeeper・SIP・FileVaultで無人ランナーを静かに守れます。
Mac mini M4は静音で待機電力が約4W級と抑えられ、手元再現と五地域ホストのISAを揃えやすいです。列とディスクを直したうえで本当にコアが足りない局面まで、無駄な上位SKUを増やさないのがTCOの筋になります。手元の基準機として今すぐMac mini M4を揃え、下のCTAからホスト側のレーンも同週に足すのが現実的です。
まとめ
並列XCTestは列とディスクの問題がCPU問題に見えやすい分野です。IOが詰まるなら1TB/2TBをProより先に、UIと軽量束はラベルで分離し、五地域では経路の実効速度までセットで見てください。
よくある質問
| 質問 | 回答 |
|---|---|
| 並列XCTestは常にM4 Proが必要ですか。 | いいえ。まずシャードと列分離。ディスクとRAMの衛生を直したあと、広い行列でCPUとRSSが同時に張り付くならProが筋になります。 |
| 2TBはいつ1TBより優先しますか。 | 複数Xcodeスタックと大きなキャッシュを同居させ、リリース週に冷えたキャッシュの再ビルドを避けたいとき。週次の掃除で済むなら1TBで十分なことが多いです。 |
| M4 16GBで現実的なシミュレータ数は。 | まずは1本のUI宛先を前提にRSSとスワップを見てから増やすのが安全です。重なりが出たら24GBレーンかUI専用ホストへ逃がします。 |
| マルチシミュレータでOOMが出たら。 | 同時宛先を減らすか、ホストを分けるのが先です。クロックよりメモリ帯域と実効RAMの方が効くケースが多いです。 |