多專案 iOS 團隊在跨區 Mac mini M4 並聯Detox 時,曲線常誤導決策:真正吃緊的是 Simulator 會話預算、派生製品扇出與 1TB/2TB 磁碟水位。本文用決策矩陣收斂並發與 rsync,並附可貼監控的驗收清單。

請與站內 Xcode Parallel Testing 與 Simulator 磁碟文rsync 決策矩陣Nomad 建置鎖watchman/FSEvents 節流 一併閱讀;共享卷若含 SQLite 產物再讀 WAL 共享卷矩陣

  1. 並發假象:Simulator 當執行緒數會低估 framebuffer、CoreSimulator 資料層與截圖寫入。
  2. 產物競態:多 job 共用同一 Derived 樹,Detox 易因半成品編譯在手勢中段 flake。
  3. 磁碟峭壁:1TB 節點對夜間多 shard 開機容忍低;逾九成必須硬停而非只清日誌。

並發上限

以「同機同時 online 的 Simulator 數」為硬欄杆,再回推 Detox worker 與 Packager;跨區請扣 WAN 預熱。下列為單節點起點,M4+16GB 宜先壓在表中位。

CI 情境 Detox worker/job Simulator 並發(同機 boot) 磁碟策略註記
主線/PR 煙測 1 1–2 保留截圖輪替;Derived 每 job 子目錄
夜間多專案 shard 2–4(分 repo 佇列) 2–3 與 promote 分樹;快取唯讀+本機增量
1TB 保守 1 1(串接佇列) 關閉非必要錄影;CoreSimulator 週清
量測優先:同時採 UI 執行緒 CPU、尾端延遲與卷宗寫入速率;僅在磁碟水位綠燈時提高並發,並對齊監控告警。

產物 rsync 參數

跨區暖快取建議:rsync -aH --partial --numeric-ids,必要時加 --checksum--times 擇一為增量權威;WAN 段加 --bwlimit。共享母目錄上避免未協調的 --delete。細節對照 叢集 rsync 文

  • 可引用:窄目錄切片(單一 scheme/單一 runtime)降低重傳面積。
  • 可引用:rsync --dry-run 再進排程,保留稽核。
  • 可引用:promote 目錄與 Detox 暫存目錄分 prefix,避免互刪。

鎖與佇列

排程器並行與 flock 擇一為權威;鎖檔放本機 SSD。多專案佇列建議「repo 維度」公平輪轉,避免單一 monorepo 占滿 Simulator 名額。

LOCK_FILE="/var/tmp/detox-promote.lock"
flock -n "$LOCK_FILE" bash -c '
  rsync -aH --partial "$CACHE_SLICE/" "$WARM_TARGET/"
' || { echo "promote busy"; exit 19; }

與 Nomad/GitLab Runner 併用時,對齊 親和與鎖粒度,避免雙軌互卡。

擴容策略

先以「水位+佇列深度」決策是否加節點或升 2TB,勿只看 CPU。觸發閾時應同步下調 Simulator 並發。

使用率 1TB 節點 2TB 節點 建議動作
< 70% 維持表列並發;排程清過期 xcresult 可保留較多裝置快取 綠燈 紀錄趨勢
70%–80% 黃燈:worker 減半或升級儲存 黃燈:刪舊 Derived/CoreSimulator 縮 shard、暫停錄影留存
> 90% 紅燈硬停:停新 dispatch,清 Derived/暫存後放行 佇列背壓至回綠

落地五步驗收:

  1. 節點回報:卷宗使用率、Simulator 上限、Derived 根路徑。
  2. 單 repo 乾跑:量測尾端延遲與每輪寫入 GB。
  3. rsync dry-run 納入合併前檢查。
  4. 鎖檔路徑與排程並寫入 runbook。
  5. 黃燈演練:確認自動降並發與告警路由。
70%
例行清理與趨勢圖;腳本 dry-run。
80%
收斂 DetoxSimulator 並發;通知值班。
90%
硬停清 Derived/CoreSimulator 後再放行。

轉化並聯資源:若要以獨佔 Mac mini M4 補齊 Simulator 名額與 1TB/2TB 儲存,請至 購買(免登入)方案/價格;連線與配額疑問見 說明中心

本文為工程實務建議。 Detox、Xcode 與 CoreSimulator 行為隨版本演進;請以官方文件與鎖定版本為準。大量刪除前務必 dry-run。
免登入即可瀏覽方案

為 Detox 並行 Simulator 補齊 M4 節點

依區域與 1TB/2TB tier 對齊 並聯名額與磁碟水位;公開頁比對套餐後下單,必要時先查 說明中心

前往購買(免登入瀏覽) 比對套餐與儲存