レンタルMac mini M4 で Xcode を回すとき、-jobs・Derived Data の置き場・跨区域遅延の三つがボトルネックになりやすいです。本文は並列と統合メモリ、外付けAPFS、IO/熱、日韓港新と米西の取舍を表で整理します。詳細は TCO・遅延稿 と DL・IO稿、接続は SSH/VNC稿 へ。
よくある痛点:①メモリ崖でリンクが圧縮される ②ブートSSDにDerived Dataを置きIOPSが争奪される ③IOや熱でクロックが振れる。
① コンパイル並列とメモリピーク
-jobs は上限として扱い、最大スキームで実測します。下表は出発点です。
| ホスト像 | 初期jobs | RAM兆候 | 調整 |
|---|---|---|---|
| M4 16GB CI単一 | 4〜6 | 圧力黄が早い | jobs−2/並列テスト停止 |
| M4 16GB 大規模混在 | 3〜4 | リンクRSS高止まり | 直列リンク/24GB帯 |
| M4 24GB モジュラー | 6〜8 | 緑安定 | 外付けDDでブート余裕時のみ増 |
| M4 24GB 重いモノレポ | 5〜7 | ユニティで黄点滅 | Swift同時FEを別枠で抑制 |
② Derived Data の外付けパスと権限
USB4/Thunderbolt級NVMeに専用APFSを切り、ケース感度はリポジトリと一致させます。台帳に暗号化の有無と単一ボリューム方針を残します。
export DD=/Volumes/XcodeDerived/DD
xcodebuild -derivedDataPath "$DD" -jobs 6 …
CIユーザーが所有し、chmod 777は避けます。共有機はテナント別サブフォルダに分けます。
- 短い逐次書き込みでエンクロージャ確認
- ボリューム作成・固定マウントパス
- 環境変数またはIDECustomDerivedDataLocationで固定
- 移行後クリーン+低jobs→段階的に増加
- 週次で空き容量と権限を監査
③ IO クォータと降温しきい値
遅延のパーセンタイルが広がる、または周波数が振れるときは、CPUではなくIOや熱が上限になっているサインです。
| 信号 | しきい値 | 緩和 |
|---|---|---|
| 外付けキュー | 数分飽和 | jobs−1、リンクずらし |
| 内蔵ビジー | 約70%超 | 中間物を外付けへ、TM停止 |
| 温度振れ | クロック連動 | 並列を一時削減、吸気確認 |
| 取得RTT | 高RTT+窓狭 | 成果物と同一リージョンへ |
④ 日韓港新 vs 米国西部ノードの取舍
Git・キャッシュ・公証の外向きに合わせて選びます。下表は例示RTTであり、必ず自社経路で実測してください。
| 地域 | vs東京 | vs米西 |
|---|---|---|
| 東京 | 1〜5ms | 110〜150ms |
| ソウル | 25〜40ms | 130〜170ms |
| 香港 | 35〜55ms | 140〜180ms |
| シンガポール | 65〜90ms | 160〜200ms |
| 米西 | 120〜160ms | 1〜8ms |
コスト:スパイクは日払い、月8〜10日以上の連続稼働なら月払いが平準化しやすい。SKUは夜間リンクの最悪に合わせる。
⑤ 失敗と再試行 FAQ
終了137やkill:メモリ不足のためjobsを下げるか24GB帯へ移行します。IO断:再接続し空き15%を確保、掃除のうえjobs 1で再ビルドします。署名差:キーチェーンと非対話IDを比較します。LFS/SPM timeout:近いリージョンへランナーを寄せるかミラーを置きます。
まとめ
保守的なjobs設定、専用APFSのDerived Data、IOと熱の監視で安定化しやすくなります。地域はデータプレーンに合わせ、短期ピークは日払い、定常負荷は月払いが目安です。