複数リポを同一Macプールで回すと速いがディスクピークが先。前提は Mac CI リソースプール記事、Cache とローカル永続は 自己ホストRunnerディスクFAQ 参照。
1. DerivedData:共有固定パスか、ジョブごと分離か
共有固定は再利用で速いがXcode差替えで壊れやすい。RUN_ID分離は再現性が高いがヒット率は落ちる。現実解は「ホスト共有+ジョブサブツリー」の二層が多い。DEVELOPER_DIRと-derivedDataPathをログに残し、並列度は同時リンクから逆算。
2. SwiftPM キャッシュキーとロック
Package.resolvedとツールチェーンがキー。キャッシュはXcodeメジャー+Swift版で分岐しないと混ざる。同一キャッシュへの並列書き込みはロック待ちが尾を引くので、読み取り専用層+ジョブWritableか、resolveの直列化を先に決める。
3. 並列xcodebuildのディスクピーク
ピークはリンク・ストリップ、中間物、同時clone/DerivedDataコピーの重なり。/tmpとDerivedDataの両膨らみに注意。dfとinode。CIではシミュレータ成果物の温存はオフが無難。
4. 掃除戦略:TTL・世代上限・df閾値
ジョブ終了で-derivedDataPath削除、共有キャッシュはTTL+世代上限。df閾値で夜間掃引。成果物保持はコンプラと別ポリシー。
5. 企業リソースプール比較FAQ
Q プール分割。 I/O頭打ちなら分割、取得律速なら単一+リモート。Q SSD。 並列3〜4本なら512GB級下限、ピークはログで増設判断。
6. ミニチェックリスト
-derivedDataPathがジョブIDで一意か- df・inode・ジョブ後掃引の監視が揃っているか
ディスクと静音を両立するビルドホスト
掃引を回してもローカルSSD余裕が効く。Apple Silicon Mac miniは統合メモリと低待機電力で夜間バッチ向き。macOSはxcodebuildが揃い、Gatekeeper/SIP/FileVaultで説明しやすい。Mac mini M4を起点に容量を見直し、
Macstripe ホーム
でスペック確認のうえ今すぐ購入へ進むと運用が一段楽になります。