>

2026 Mac Cloud CI ビルド プール: 後悔せずに容量を購入する方法 — ベースライン ノード、バースト並列処理、およびホスト型の分単位課金ハイブリッド マトリックス

GitHub の議事録と Xcode Cloud のシートを購入した後も、なぜ依然として Mac ホスト全体をレンタルしているのか、財務省は尋ね続けています。この記事は、すでに VPS 契約とランナー ラベルについて話しているプラ​​ットフォーム リードを対象としています。キュー リスクとアイドル メタルのどちらが負担するべきかを明確にし、ワークロードをベースライン マージ、リリース週のバースト、ロングテール公証ジョブに分割し、専用のベースライン キャパシティ、プール内のバースト並列処理、およびホストされた 1 分あたりの費用を並べた単一のマトリックスを提供します。ランブックに対応した 5 つのパラメーター (キューの深さ、同時実行数の上限、ディスク ウォーターマーク、リージョン RTT、スケールアウト トリガー) に加えて、2026 年のアーキテクチャ レビューに貼り付けることができる FAQ 構造化データを用意します。

2026 年の Mac クラウド ビルド プールのキャパシティ プランニングとハイブリッド請求の図

本稿の構成

1. 概要: コア数ではなく、キューとアイドル時間を最適化する

Mac クラウドを構築プールと見なすと、調達の主語はコア数ではなく独占並行度とディスク帯域へ移る。常駐ベースラインは夜間マージと回帰の安定、バーストは発版週の単機並列、ホステッド分は軽量 PR の共有池、の三列で相互置換ではない。誤配線は待ち侵食・リンカ欠陥・「分は下がるが壁時計横ばい」の錯覚になる。次節で痛み・表・五手順を示す(語彙は三算力記事と併読)。

2. 問題点: ベースラインの盲点、バーストの誤用、二重カウント

2026 年レビューで衝突しやすいパターン。

  1. ベースライン過小:日次ビルドだけ見て夜間ロングテールや依存プリコンパイルを落とし、昼は健康・深夜だけキュー重積みに見える。
  2. バースト誤用:単機にアーカイブ並列を積んでホステッド分を削るが、p95 とメモリ争用で人手が戻る。
  3. 二重計上:待ち率と独占利用率を分けず請求と分だけ見ると誤った削減指示が出る。

3. 意思決定マトリックス: ベースライン、バースト、ホストされた分数

表は三列比較で第四算力ではない。

DimensionBaseline dedicated Mac cloudBurst parallelism inside the poolHosted minute billing
Primary KPIStable queue depth and predictable p95Peak throughput for short windowsUnit cost for light jobs on standard images
Billing shapeLease plus traffic, favors sustained CPULease unchanged, risk becomes contentionPer-execution minutes and plan tiers
Main riskIdle capacity and toolchain driftMemory and disk contention, thermal limitsShared pool queues and customization ceilings
Typical workloadsMainline merges, nightly suites, colocated agentsRelease-week multi-scheme archivesPR compile smoke and narrow simulator matrices
Observability must-havesDisk watermarks, concurrency groups, launchd restartsParallel caps, queue pause hooksQueue fraction, minute splits by job type
シーム原則:ドキュメント生成と小さな PR はホステッド分へ。mainrelease/* のアーカイブ・notarytool・長い UI は専用プールへ。ピーク週は単機並列を増やすのではなくラベル複製で水平拡張する。

4. ワークロードプロファイリングからスケールアウトまでの 5 つのステップ

手順は社内 Runbook に載せ凍結前後でリハーサルする。

  1. 3 バケット計測:4 週ログを平日/発版窓/夜間ロングテールに切り、待ち・CPU 分・アップロード分を別系列にする。
  2. 列の割当:基線は専用排他、バーストは一時ノードか並列上限、ロングテールの一部はホステッドへ戻してリースを償却。
  3. ラベルと並列上限:リージョンと Xcode 小版をラベル化し、アーカイブと UI 全行列で concurrency グループを共有しない。
  4. ディスク:DerivedData を名前空間化し、系統ボリューム空き約二割を下回らせず、約 10GB 手前でキュー停止→掃除→再開。
  5. 拡張トリガ:二週で待ち率上昇・ディスク/メモリ警報連打・第二リージョン要請なら水平に同ゴールデンイメージで増設し単機並列は増やさない。

Use GitHub Actions concurrency so archives cannot preempt PR smoke tests:

concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: pr-smoke: if: github.event_name == 'pull_request' runs-on: macos-14 timeout-minutes: 30 archive-prod: if: github.ref == 'refs/heads/main' runs-on: [self-hosted, macOS, ARM64, pool-baseline] concurrency: group: archive-main cancel-in-progress: false timeout-minutes: 120

5. アラートとレビューの引用可能なしきい値

次の箇条書きを容量デッキにそのまま貼り、数値は契約と実測に合わせて調整する。週次では独占 CPU 利用率とキュー深さを並べ、財務が「分」と「待ち」を同時に読めるようにする。失敗は署名・依存取得・OOM・アップロードにタグ付けし、列ごとの主因を混同しない。

6. これを 3 つのソース CI 記事と組み合わせる方法と、2 番目のプール ノードを追加するタイミング

語彙は三算力記事で揃え、専用列を基線対バーストへ割る。分課のみでは発版週の待ちが見えない。遊休のまま増設しても p95 は動かない。オフィス単機は人手に戻る。独占・固定出口・並行の予測性なら VPSMAC M4 Mac クラウドで NVMe 基線を固定しバーストは水平複製。90 秒 API 記事で Runner まで閉じる。