大儲存庫冷啟動常是 Git 物件、CocoaPods 解析與 SwiftPM checkout 同碟疊加,CPU 空卻整體慢。資源池邊界見 企業 Mac CI 資源池選型 FAQ;持久磁碟與 Cache 見 自託管 Runner 並行與本機持久磁碟 FAQ。
一、冷啟動的三條時間線
三條線並行:Git 工作樹(含 LFS)、CocoaPods 讀 Specs/CDN 並解包、SwiftPM 解析拉套件。任一條被節流,排程就看到長佇列。常見補丁是分開佇列或全域鎖序列化互踩步驟,避免兩 Job 同寫 Pods/SourcePackages。
二、blobless 與 shallow
blobless 省傳輸但可能延後拉 blob;shallow 省物件但語意受限。Runbook 寫清分支策略;GIT_LFS_SKIP_SMUDGE 與 lfs pull 對齊,避免下游反彈。
三、Specs CDN 與鏡像
Specs 走 CDN 或 git 大倉決定解析路徑;企業應有鏡像/代理並看命中。多 Job 同打 specs 仍會本機鎖與寫放大,須佇列或每 Job 暫存。
四、CocoaPods 與 SwiftPM 並行:怎麼排隊才不像在賭運氣
兩套工具快取語意不同;無上限並行時 pod install 與 swift package resolve 易搶頻寬與 inode,或共用 DerivedData 前綴錯亂索引。可拆 Runner 標籤、加並發上限與公平佇列,或唯讀快取層;觀測各階段耗時與命中。
cocoapods/swiftpm各一組可寫根,避免互踩預設路徑。- 升級 Xcode/Ruby 後跑冷啟樣本,更新「解析峰值」。
五、高 I/O 節點、持久快取與「擴碟 vs 隔離」
- 擴碟/高速卷:拉高吞吐與 IOPS,TCO 隨容量升。
- 佇列隔離/拆池:解壓與編譯分開,峰值變矮,用 SLO 約束等待。
- 持久快取+LRU:縮冷啟,需版本切換與 GC,防壞檔污染。
擴碟拉高單節點寫入天花板;隔離降低多租戶互拖。多數團隊兩者各取一段,用監控決定下一刀。
在 Mac mini 上校準依賴型 CI
依賴解析吃滿 NVMe 連續寫 與 metadata。Mac mini 待機約 4W、低噪,適合解析/快取節點;Gatekeeper、SIP、FileVault 收斂惡意二進位與憑證風險。
在真機重跑 blobless/CDN/SPM,可打開 Macstripe 首頁挑節點對照延遲與磁碟佇列。Mac mini M4 仍是 2026 年擴容高性價比起點;若要把 FAQ 落到專屬節點,現在即可從首頁選方案校準冷啟曲線。