單機夠用時,什麼情境才需要 TB5?
Thunderbolt 5 並聯不是「讓 Xcode 編得更快」的魔法開關——單一 target 的全量 xcodebuild 耗時,
仍主要取決於該台 M4 的 CPU 與 16 GB 統一記憶體。TB5 解的是多機協作時的資料平面:
當瓶頸從算力轉向「把幾十 GB 的快取與產物搬到另一台機器」,千兆公網就會變成隱形稅。
以下三類工作負載,我們在測試前訪談客戶時聽得最多,也最能從 TB5 受益:
- 編譯農場:同一 repo 要同時產出 Debug 內測包、Release 商店包與 Extension 獨立 Archive;
- 大型 Artifact 搬運:DerivedData、
.xcarchive、Core ML 權重檔在 worker 間複製,單次 20–80 GB 很常見; - 分散式推理或渲染:多程序分片載入模型,節點間需要接近記憶體頻寬的互聯,而非與外部流量共用 1 Gbps 出口。
若三台機器只靠各自公網 IPv4 互傳,理論上限約 125 MB/s,傳 50 GB 就要六、七分鐘, 還得與同機房其他連線搶頻寬。TB5 的價值在於:於同一 SpinMac 資料中心節點內, 以 80 Gbps 物理通道把多台 Mac mini 收成邏輯上的高速區域網路,把協作等待從「分鐘級」壓到「秒級」。
測試環境:三機物理、一條 TB5 骨幹
實測在 SpinMac 新加坡節點進行。台港澳與東南亞團隊 SSH 延遲多在 30–80 ms, 適合作為亞太區建置樞紐;另須注意 TB5 並聯要求機器位於同一節點—— 新加坡加東京這種跨節點部署無法組網。
機器:3 × Mac mini M4 · 10 核 CPU · 16 GB 統一記憶體 · 256 GB NVMe SSD · 1 Gbps 獨享公網頻寬。
系統:macOS 15 Sequoia,Xcode 16.4,以 Homebrew 安裝 iperf3 3.17。
互聯:SpinMac Thunderbolt 5 並聯附加項(同節點 3 台鏈式拓撲:A ↔ B ↔ C)。
對照組:相同 3 台,僅經公網 IP + SSH/rsync 互傳,未啟用 TB5。
專案:SwiftUI 中型 App(約 12 萬行、3 個 Extension),另備 42 GB 壓縮 DerivedData 快照供同步測試。
從下單到鏈路就緒:開通與驗證流程
TB5 並聯並非預設能力,須在租用階段或控制台為同一訂單群組內的多台實例勾選附加項。 下列步驟完成後即可開始跑分;線材與機房布線由 SpinMac 處理,無需自行採購交換器。
-
01
於下單頁租用多台並勾選 TB5
進入配置下單頁,節點選「新加坡」,數量 3 台,週期依測試需求(我們採按週 $57.3/台)。 附加項勾選「Thunderbolt 5 多機並聯」——按週每台額外 +$4.1。 付款後約 1–5 分鐘交付,控制台訂單詳情會出現「TB5 叢集」標示。
-
02
確認系統辨識 Thunderbolt Bridge
SSH 登入後,於「系統設定 → 網路」應可見 Thunderbolt Bridge 介面與 169.254.x.x 鏈路本地位址。 以
ifconfig bridge0核對狀態為 active。若僅單台看不到 bridge,多半是並聯佈建尚未完成, 提交工單即可;我們本次約等 8 分鐘。 -
03
固定主機名與 SSH 互信
於
/etc/hosts寫入三台機器 TB5 側 IP 與別名(如mac-a、mac-b、mac-c), 設定 SSH 金鑰互信;後續 iperf3 與 rsync 一律走 bridge 網段,避免誤用公網 IP。 -
04
冒煙測試
在 mac-a 執行
ping -c 5 169.254.x.x(mac-b 的 bridge 位址), 延遲應穩定在 0.3–0.8 ms。再跑一輪短 iperf3,確認鏈路可用後才上正式任務。
TB5 並聯僅適用同一 SpinMac 節點內的多台 Mac mini。 若已有單台實例,可於控制台訂單詳情追加並聯,無須重新下單整機。 詳細價格見定價頁附加項表。
頻寬實測:80 Gbps 實際能跑多快?
80 Gbps 為物理層理論值;實際吞吐受框架開銷、CPU 軟中斷、測試工具與拓撲影響。 我們以 iperf3 單流與 8 並行流各跑 5 次取中位數,結果如下。
| 測試路徑 | 工具 / 參數 | 中位吞吐 | 說明 |
|---|---|---|---|
| mac-a → mac-b(TB5) | iperf3 · 8 並行流 · 30s | 68.4 Gbps | 約標稱 85%,鏈式拓撲首跳 |
| mac-a → mac-c(TB5 經 B 中轉) | iperf3 · 8 並行流 | 61.2 Gbps | 多一跳,仍遠高於千兆 |
| mac-a → mac-b(公網 IP) | iperf3 · 單流 | 0.94 Gbps | 觸頂 1 Gbps 埠,符合預期 |
| mac-a → mac-b(公網 · scp 42GB) | 實際檔案傳輸 | 約 112 MB/s | 傳 42 GB 約 6 分 18 秒 |
| mac-a → mac-b(TB5 · rsync 42GB) | rsync -avz 首次全量 |
約 3.8 GB/s 峰值 | 全量同步約 18 秒 |
換算成日常語言:42 GB DerivedData 快照,走公網 scp 要六分鐘以上; 走 TB5 網段 rsync,首次全量二十秒內完成,第二次增量(僅變更的 object 檔)更可壓到 3 秒內。 對編譯農場而言,worker 拉快取的等待從「泡杯咖啡」變成「裝杯水」。
必須說清楚:TB5 優化的是節點間搬運,不會讓單機 xcodebuild 憑空變快。
若痛點是單一 target 編譯慢,應先檢視依賴圖與模組化;若痛點是多機並行加大快取共用,TB5 效益就非常明顯。
實戰:Xcode 建置與 CI 分工
跑分數字最終要回到工作流。我們設計兩組對照實驗,模擬 iOS 團隊常見做法。
實驗 A:三台並行 Archive,共用 DerivedData
主節點 mac-a 完成一次全量編譯產生 DerivedData 後,經 TB5 推送至 mac-b、mac-c; 三台同時執行不同 scheme 的 Archive(Debug 內測、Release 商店包、Notification Service Extension 獨立包)。
無 TB5(各機獨立全量編譯):三台總牆鐘時間約 47 分鐘(含各自 14–16 分鐘全量編譯)。
有 TB5(一次編譯 + 快取分發):首台全量 15 分 20 秒,快取推送 22 秒,三台並行 Archive 8 分 40 秒,
總牆鐘 24 分 22 秒,節省約 48%。若每日打三輪包,一週可拿回數十小時。
實驗 B:GitHub Actions 自託管 Runner 池
三台各註冊為 self-hosted runner,標籤 macos-m4-a/b/c。
workflow 以 matrix 拆分單元測試與 UI 測試;測試產物與 .xcresult 彙整至 mac-a 時,
TB5 路徑使 6.2 GB 結果包聚合從 4 分 50 秒降至 41 秒。
Runner 安裝與簽名設定的完整步驟,見 雲端 Mac 跑 Xcode CI/CD 實戰指南。 該文聚焦單機流水線;本篇補上的是多機互聯層。
踩坑紀錄:我們真實遇過的問題
並聯服務交付物理鏈路與 bridge 網路,上層應用仍須自行規劃。下列問題踩過一次就不會再犯:
勿讓 rsync / NFS 誤走公網 IP。我們曾把 RSYNC_HOST 留成公網位址,
42 GB 傳了六分鐘才發覺——執行 route get 169.254.x.x 可事先避開。
- 鏈式拓撲的中轉損耗:三台 A–B–C 鏈式連接時,A 到 C 頻寬略低於 A 到 B。 對延遲敏感的全量同步,建議把「快取源」固定在拓撲中心(本次即 mac-b)。
- 磁碟仍是瓶頸:256 GB 系統碟同時塞三份 DerivedData 會吃緊。 大型 repo 建議至少為一台 worker 勾選 +1 TB SSD 擴容(按月 +$12.5),快取與 Archive 分碟存放。
- 簽名憑證部署策略:若各機並行 Archive,每台鑰匙圈都須有 Distribution 憑證; 或採「主節點簽名、子節點只跑測試」分工,縮小金鑰擴散面。
- TB5 不取代公網接入:筆電仍經 SSH/VNC 連各機公網 IP 操作; TB5 網段為機房內部資料平面,不暴露至網際網路,屬安全設計而非缺陷。
成本試算:什麼時候值得加購 TB5?
基礎租用依 SpinMac 統一定價:按日 $21.2、按週 $57.3、按月 $106.1、按季 $288.6,五節點同價。 TB5 並聯附加項按台計費:按日 +$1.5、按週 +$4.1、按月 +$7.5、按季 +$20.4。 以本次 3 台、按週為例:
機器租金:3 × $57.3 = $171.9/週
TB5 附加:3 × $4.1 = $12.3/週(約占機器租金 7%)
合計約 $184.2/週,折合每天 $26.3 擁有三台可互聯的 M4 編譯節點。
對比自建:採購 3 台 Mac mini M4 硬體約 $1,800 起,再加 TB5 線材、機架與電費,前期成本高且閒時無法縮容。 對比「三台各跑各的、走公網互傳」:機器費相同,但若每週發生十次以上 40 GB 級同步, 工程師空等傳輸的時間成本,往往遠超 $12.3 的附加項差價。
建議加購 TB5 的訊號:同節點 ≥2 台、且每日有大體積 Artifact 或快取同步; 或 CI matrix 經常並行 3 路以上 macOS job。反之,長期僅單台、或機器分散在不同城市節點做災備, 則不必開通——跨節點無法 TB5,應改以物件儲存做建置快取(S3 相容層),屬另一條架構路徑。
尚未租用任何機器者,可於下單頁一次選好多台與 TB5 附加項; 已有單台者,於控制台追加並聯即可,無須遷移資料。
結論:80 Gbps 改變的是協作摩擦,不是單機峰值
回到標題——Thunderbolt 5 並聯的 80 Gbps 是什麼體驗? 一句話:它讓多台 Mac mini 在資料面上像同一機架上的伺服器那樣通訊。 iperf3 實測 60–68 Gbps 量級,大檔同步從分鐘壓到秒;但單台 Xcode 全量編譯該多久仍多久, 叢集價值在並行與快取複用,而非取代更快的晶片。
對 SpinMac 使用者,TB5 附加項的意義是:在已選擇雲端物理 Mac 的前提下,把多機協作的摩擦降到夠低—— 無須自購線材、無須與機房協調布線,同節點勾選即可。若團隊正卡在「編譯農場構想有了,機房傳檔太慢」, 本篇數字與流程可直接當 PoC 檢查清單使用。
| 你的情境 | 建議 |
|---|---|
| 個人單 App,偶爾 Archive | 單台 M4 足夠,不必 TB5 |
| 每日多 scheme / 多包並行 | 同節點 2–4 台 + TB5,共用 DerivedData |
| 大型模型分片推理、影片渲染流水線 | TB5 + 按需 SSD 擴容,注意鏈式拓撲中心節點 |
| 多地域災備 | 各節點獨立機器,TB5 無效,改物件儲存同步 |