CI/CD
2026年遠端 Mac 並行 XCTest 測試實驗室:
五地延遲 · 模擬器容量 · DerivedData 與租期 FAQ
zulcloud 編輯部
2026-05-18
導讀
把遠端 Mac 當成並行 XCTest 實驗室:先對齊五地節點延遲與 Runner 路由,再按 M4 / M4 Pro 定模擬器並行上限,用 DerivedData 隔離守住磁盤,最後用短租/月租矩陣鎖成本。
5地
港/新/東/美西/美東
典型對照
典型對照
45GB
並行 UI 測時
建議 APFS 餘量
建議 APFS 餘量
1路
Job 對應
獨立 DerivedData
獨立 DerivedData
一五地節點:延遲對照與 XCTest 路由
瓶頸常在日誌回傳與製品上傳。五地典型 RTT(大陸辦公網,請以 mtr 實測):
| 節點 | 大陸參考 RTT | 適合 XCTest 場景 | 備註 |
|---|---|---|---|
| 香港 | 30–45ms | 互動調試、冒煙門禁 | 亞太首選 推薦 |
| 新加坡 | 55–75ms | 東南亞用戶矩陣、TestFlight | 骨幹穩定 |
| 東京 | 60–90ms | 日文區 UI 測、時區接力 | 與港新互補 |
| 美西 | 140–170ms | 夜間全量、與 AWS us-west 同區 | 帶寬大、適合 artifact |
| 美東 | 170–200ms | 與 GCP/AWS 東部內網 CI | 硬體迭代快 推薦 |
標籤寫 region-hk-ui 等,把地域 + 並行檔寫進契約;跨區只傳報告,勿同步整包 DerivedData。
了解更多:亞太與美東接力構建 FAQ
⚠️ 並行≠核數:模擬器爭用 WindowServer 與磁盤 I/O 時,加並發只會把失敗偽裝成「偶發 flake」。
二M4 / M4 Pro:模擬器並行容量矩陣
按記憶體檔位封頂,UI 與單元測分開計數:
| 記憶體 | M4(10 核) | M4 Pro(12 核) |
|---|---|---|
| 16GB | 1 路 UI;最多 3 路單元模擬器 | 略寬裕,仍不建議雙 UI |
| 24GB | 2 路 UI;4 路單元 | 3 路 UI(編譯隔離時)推薦 |
| 32GB+ | 3 路 UI(需監控壓縮記憶體) | 高並行矩陣 / 多 Xcode 版本 |
SpringBoard 反覆重新啟動或 APFS 可用 <45GB 時立刻降並發。
三DerivedData 治理與 1TB / 2TB 擴容
禁止多 Job 共用默認 DerivedData。每 Job 設 DERIVED_DATA_PATH=/var/ci/dd-${JOB_ID};可用 <15% 時測試會先變慢。1TB + 周清理夠多數團隊;多分支並行、多 Xcode 版本並存再上 2TB。擴容前做快照。
延伸閱讀:遠端 Mac 部署 OpenClaw 與儲存選型 FAQ
四短租 / 月租決策矩陣
| 信號 | 短租 | 月租 |
|---|---|---|
| 隊列利用率 | 發版周 >70%,平時 <30% | 全天有排隊 常態 |
| 並行窗口 | 臨時加 2–4 路模擬器 | 固定 M4 Pro + 2TB 池 |
| 成本心智 | 按窗口付費,峰值友好 | 均攤更低,需預測利用率 |
同表對比空置損失與峰值短租加價,別隻盯日單價。
五常見問題(FAQ)
Q
並行 XCTest 失敗率突然升高,先查什麼?
磁盤餘量、模擬器孤兒進程、DerivedData 是否被另一 Job 覆蓋;再查並發是否超過記憶體矩陣。
六在 Mac mini 上穩住這套實驗室
XCTest 並行依賴 macOS 模擬器棧與無人值守穩定性。Apple Silicon 記憶體帶寬佔優,Gatekeeper、SIP 降低 Runner 風險;Mac mini M4/M4 Pro 靜音低功耗,適合 7×24 實驗室。從 Mac mini M4 起步,讓並行測試跑滿帶寬——見底部 CTA。