2026年企業Mac CI:Bazel・Gradle遠隔キャッシュ、repository_cache/disk_cache分区とNVMe

同一Mac CIランナーにBazelGradlexcodebuildが同居するとき、遠隔キャッシュはI/O支配権が勝負。repository_cacheは依存Blob、disk_cache(Bazel)やGradleローカルは実行グラフ――レイヤが違うのでNVMe分区を先に決める。 詳しくは:2026 企業向け Mac CI リソースプール:マルチリポ並列ビルド、キャッシュ再利用、ディスク拡張——クラウドで借りるか自前で走らせるか?

1. BazelとGradle:遠隔キャッシュの当たり方の差

BazelはCAS+メタ、Gradleはビルドキャッシュと依存Blobで帯域が伸びやすい。TLS・認証・接続プールは共通。Runnerは低RTT優先、キャッシュ専用経路を切ると尾が短い。

目安:「読み取り専用の共有遠隔+少数の書き込みゲートウェイ」に寄せると、誤キャッシュ混入の説明責任が楽になる。

2. repository_cacheとdisk_cache:NVMe上の分区設計

repository_cacheはBlob連続書き込み、disk_cacheは小ファイル乱立。単一卷きはfsyncで互いに尾を引く。別ボリュームに分けGCをずらす。-derivedDataPathとGradleホームもキャッシュと物理分離し満杯の巻き添えを防ぐ。

3. 同機マルチJob×xcodebuild並列:CPUよりキュー深さ

複数xcodebuildはシミュレータと索引でRAM・ディスクキューを奪う。Bazel/GradleのGETが同一NVMeに刺さると命中が高くても壁時計が伸びる。同時xcodebuild本数を先に抑え、Gradleデーモンとexecutorを段階開放。読み取り専用遠隔はミス時別分区のローカル退避が必須。

  • awaitとutil%でNVMe飽和を先に見る。CPUが余っていても意味がない。
  • JDKとXcodeのメジャーをタグに載せ、キャッシュキーのドリフトを防ぐ。
  • ローカルフォールバック用の空き容量は「最悪一Job分のフルビルド」以上。

4. プラットフォーム責任者向け選定FAQ

  • 読み取り専用遠隔にすべきか:本番ブランチの再現性最優先なら推奨。書き込みは限定ロールまたは専用ビルドアグリゲータへ。
  • 高NVMe機で並列度が頭打ち:帯域ではなくメタIOPSとロック。シャーディングや複数キャッシュエンドポイントを検討。
  • BazelとGradleを同ディスクに置くリスク:GCタイミングの重なり。分区+スケジュールずらしが定石。
  • Apple系だけ別Runner:混在が厳しいチームは物理分離が最も説明しやすい。

高IOPSなビルド検証に向くApple SiliconとMac mini

macOSxcodebuildとツールチェーンを揃えられる実利、Apple Siliconの統合メモリとNVMeはBazel小I/OとGradle Blobの両方に余裕。Gatekeeper/SIP/FileVaultは監査説明がしやすい。Mac miniの低待機電力はキャッシュ常時ウォームや夜間ビルドの総コストを抑える。

分区と並列度の実測はノード固定が早い。Mac mini M4を基準に、 Macstripeホーム で専有構成を確認し、遠隔キャッシュ距離を合わせたうえでスループット検証に使うなら今すぐ購入が合理的。