高メモリーApple Siliconで多リポのPRを並行させると、Gitの取り方がチェックアウト遅延とディスクピークを左右する。git worktreeかジョブ単位cloneかは隔離と再利用のトレードオフだ。
関連:リソースプールとキャッシュ再利用
と併せオブジェクト共有と依存キャッシュ境界を整理する。
1. worktree対照clone:チェックアウト遅延と隔離
worktreeは同一.gitでツリーを増やしオブジェクト再利用に強い。サブモジュールやLFS、厳格な掃除要件では終了処理が重い。ジョブ単位cloneはI/Oと帯域を使うがFS隔離が明確。git clone --referenceの折衷は参照先整合と権限をRunbook化する。
2. 多リポジトリ並行PRとディスクピーク
並行度が上がると同時チェックアウトとDerivedDataが重なり、APFSでも空き枯渇が起きうる。各ジョブの_workをNVMe別プレフィックスに固定してスパイクを分散する。DEVELOPER_DIRとシミュレータ併走は
関連:CLT/Xcode.appとNVMe占有FAQ
と併読。
3. 依存キャッシュの複用:共有読み取りとジョブ専用書き込み
ノード共有キャッシュはロック競合と権限汚染が出やすい。読み取り専用層+ジョブ書き込みサンドボックスの二層が安定。Gradle/Bazel併用は 関連:NVMe分区と遠隔キャッシュFAQ の表でGit領域とビルドキャッシュを分離する。
4. 実務FAQ(チェックリスト)
- 隔離:サブモジュールや
post-checkoutが隣ジョブへ波及しないか。 - 計測:
gitとxcodebuildの所要をログで分離しているか。 - 退避:ディスク90%超の自動停止と手動クリーン手順があるか。
専有Mac miniでプール境界を固定する
共有ランナーでは隣フェッチが計画を崩しやすい。専有Apple Siliconならworktree本数・clone深さ・キャッシュ置き場を表にできる。macOSはUnixとxcodebuildが一続きでGatekeeper/SIP/FileVaultの説明も容易。Mac mini M4は統合メモリ帯域と低待機電力で高並行に向く。
ホームで専有ノードを確認し、今すぐ購入してRunbookを本番近い負荷で試すのが合理的だ。