2026 Mac Cloud CI ビルド プール: 後悔せずに容量を購入する方法 — ベースライン ノード、バースト並列処理、およびホスト型の分単位課金ハイブリッド マトリックス
GitHub の議事録と Xcode Cloud のシートを購入した後も、なぜ依然として Mac ホスト全体をレンタルしているのか、財務省は尋ね続けています。この記事は、すでに VPS 契約とランナー ラベルについて話しているプラットフォーム リードを対象としています。キュー リスクとアイドル メタルのどちらが負担するべきかを明確にし、ワークロードをベースライン マージ、リリース週のバースト、ロングテール公証ジョブに分割し、専用のベースライン キャパシティ、プール内のバースト並列処理、およびホストされた 1 分あたりの費用を並べた単一のマトリックスを提供します。ランブックに対応した 5 つのパラメーター (キューの深さ、同時実行数の上限、ディスク ウォーターマーク、リージョン RTT、スケールアウト トリガー) に加えて、2026 年のアーキテクチャ レビューに貼り付けることができる FAQ 構造化データを用意します。
本稿の構成
- 1. Executive summary: optimize queues and idle time, not core counts
- 2. Pain points: baseline blind spots, burst misuse, double counting
- 3. Decision matrix: baseline, burst, hosted minutes
- 4. Five steps from workload profiling to scale-out
- 5. Citable thresholds for alerts and reviews
- 6. How this pairs with the three-source CI article
1. 概要: コア数ではなく、キューとアイドル時間を最適化する
Mac クラウドを構築プールと見なすと、調達の主語はコア数ではなく独占並行度とディスク帯域へ移る。常駐ベースラインは夜間マージと回帰の安定、バーストは発版週の単機並列、ホステッド分は軽量 PR の共有池、の三列で相互置換ではない。誤配線は待ち侵食・リンカ欠陥・「分は下がるが壁時計横ばい」の錯覚になる。次節で痛み・表・五手順を示す(語彙は三算力記事と併読)。
2. 問題点: ベースラインの盲点、バーストの誤用、二重カウント
2026 年レビューで衝突しやすいパターン。
- ベースライン過小:日次ビルドだけ見て夜間ロングテールや依存プリコンパイルを落とし、昼は健康・深夜だけキュー重積みに見える。
- バースト誤用:単機にアーカイブ並列を積んでホステッド分を削るが、p95 とメモリ争用で人手が戻る。
- 二重計上:待ち率と独占利用率を分けず請求と分だけ見ると誤った削減指示が出る。
3. 意思決定マトリックス: ベースライン、バースト、ホストされた分数
表は三列比較で第四算力ではない。
| Dimension | Baseline dedicated Mac cloud | Burst parallelism inside the pool | Hosted minute billing |
|---|---|---|---|
| Primary KPI | Stable queue depth and predictable p95 | Peak throughput for short windows | Unit cost for light jobs on standard images |
| Billing shape | Lease plus traffic, favors sustained CPU | Lease unchanged, risk becomes contention | Per-execution minutes and plan tiers |
| Main risk | Idle capacity and toolchain drift | Memory and disk contention, thermal limits | Shared pool queues and customization ceilings |
| Typical workloads | Mainline merges, nightly suites, colocated agents | Release-week multi-scheme archives | PR compile smoke and narrow simulator matrices |
| Observability must-haves | Disk watermarks, concurrency groups, launchd restarts | Parallel caps, queue pause hooks | Queue fraction, minute splits by job type |
main と release/* のアーカイブ・notarytool・長い UI は専用プールへ。ピーク週は単機並列を増やすのではなくラベル複製で水平拡張する。
4. ワークロードプロファイリングからスケールアウトまでの 5 つのステップ
手順は社内 Runbook に載せ凍結前後でリハーサルする。
- 3 バケット計測:4 週ログを平日/発版窓/夜間ロングテールに切り、待ち・CPU 分・アップロード分を別系列にする。
- 列の割当:基線は専用排他、バーストは一時ノードか並列上限、ロングテールの一部はホステッドへ戻してリースを償却。
- ラベルと並列上限:リージョンと Xcode 小版をラベル化し、アーカイブと UI 全行列で concurrency グループを共有しない。
- ディスク:DerivedData を名前空間化し、系統ボリューム空き約二割を下回らせず、約 10GB 手前でキュー停止→掃除→再開。
- 拡張トリガ:二週で待ち率上昇・ディスク/メモリ警報連打・第二リージョン要請なら水平に同ゴールデンイメージで増設し単機並列は増やさない。
Use GitHub Actions concurrency so archives cannot preempt PR smoke tests:
5. アラートとレビューの引用可能なしきい値
次の箇条書きを容量デッキにそのまま貼り、数値は契約と実測に合わせて調整する。週次では独占 CPU 利用率とキュー深さを並べ、財務が「分」と「待ち」を同時に読めるようにする。失敗は署名・依存取得・OOM・アップロードにタグ付けし、列ごとの主因を混同しない。
- キュー深さ:許容待ちに対して深さが常に超過なら、先にルーティングと concurrency を直し、増設は後。
- メモリ:単路アーカイブの RAM ピークはおおよそ 12〜18GB が目安で、これが単機並列 xcodebuild の実効上限。
- ディスク:連続空きが約 10GB 手前でリンカ欠陥が増えるので、硬警報とキュー一時停止をセットにする。
6. これを 3 つのソース CI 記事と組み合わせる方法と、2 番目のプール ノードを追加するタイミング
語彙は三算力記事で揃え、専用列を基線対バーストへ割る。分課のみでは発版週の待ちが見えない。遊休のまま増設しても p95 は動かない。オフィス単機は人手に戻る。独占・固定出口・並行の予測性なら VPSMAC M4 Mac クラウドで NVMe 基線を固定しバーストは水平複製。90 秒 API 記事で Runner まで閉じる。