Mac mini 建置主機是可排程節點,不是寵物機——但若在未排空編排器的情況下直接重啟,仍會讓 Slack 一片紅。本 2026 手冊說明如何暫停新任務、安全結束在跑作業、把標籤切到替換容量,並溝通時間線,讓研發團隊信任平台側。文中含兩張對照表、數值化排空閾值,以及九步有序清單,適用於 GitHub Actions 式自建機群,也可遷移到其他 macOS 佇列系統。
若 Runner 尚未註冊,請先閱讀 Mac mini M4 自建 GitHub Actions。若維護緊隨較大映像晉升,請在 金絲雀與藍綠切換 之後再排空,避免晉升中途下線主機。若視窗內等待飆升,請先用 佇列深度與等待時間 SLO 解讀指標,再歸咎於「補丁慢」。
團隊跳過正式排空時的典型故障
- 編譯工作被強殺:在
xcodebuild過程中重啟會浪費約 15~40 分鐘牆鐘時間,並在數週內損害開發者信任。 - 工作區鎖遺留:粗暴終止會留下陳舊的
.lock檔案或模擬器行程,導致後續十餘個作業連續失敗。 - 金鑰輪換意外:維護常伴隨鑰匙圈或 API 金鑰更新;在跑作業可能仍持有舊憑證,直到正常退出。
交接策略矩陣
| 做法 | 額外容量需求 | 使用者可見風險 |
|---|---|---|
| 標籤排空 + 溫熱備用 | 1:1 替換池 | 備用機已預熱則低 |
| 僅限時自然排空 | 無 | 中等——佇列變長 |
| 硬停 / 直接重啟 | 無 | 高——作業失敗 |
繼續等待與強制結束工作的分界
| 觀測 | 閾值 | 動作 |
|---|---|---|
| 最老執行中工作時長 | < 50 分鐘 | 等待——多半是正常長時間測試 |
| 最老執行中工作時長 | > 95 分鐘 | 通知負責人;考慮取消並在新主機重試 |
| 佇列深度相對 SLO | p95 等待 +25% | 啟用溢出標籤或短期租用雲端 Mac |
| 安全補丁嚴重度 | CVSS ≥ 9 | 經管理層批准的取消視窗 |
標籤語義:排空指把主機從入站選擇器中摘掉,而不是卸載 Runner 二進位。保留服務安裝狀態,維護拖期時可在數分鐘內重新啟用。
九步維護交接清單
- 開立變更單:列主機名、維護類型、預計時長與回滾負責人。
- 提前公告:工作日維護至少提前 24 小時發到研發頻道;多區域排空提前 72 小時。
- 核實備用容量:確認替換 Runner 在編排介面顯示為
Idle。 - 從預設標籤移除目標:停止排程新作業;允許在跑作業完成。
- 觀察執行數量:每 5 分鐘重新整理;記錄異常。
- 計數歸零後:優雅停止 Runner 服務並擷取末尾日誌。
- 執行維護:系統補丁、磁碟清理、Xcode 安裝——為 CMDB 寫筆記。
- 重新啟用前冒煙:跑一條涵蓋編譯、簽章與上傳的標準流水線。
- 低峰期掛回標籤:持續觀察 p95 等待 60 分鐘後再關單。
用自動化約束人為失誤
純人工清單在值班同學生疏或疲憊時容易失效。把主路徑寫進自動化:透過 API 切換編排標籤、自動開變更單並發送預製 Slack 通知,可顯著降低方差。在走向 kill -9 或強制重啟前保留人工門禁——除非附帶應急事件編號,否則自動化不應在 running_jobs > 0 時重啟主機。正確接線後,團隊的中位維護時長常下降 18~30%,因為不必每次憑記憶重敲「Mac 版 kubectl」步驟。
- 排空開始 Webhook:向指標堆疊上報主機名與預計結束時間戳。
- 執行作業數量 20 分鐘不變則告警:更像卡死執行器而非長編譯。
- 維護模式自動過期:若標籤脫離超過 4 小時仍未結案則呼叫——有人忘了最後一步切回。
把自動化當作可執行的文件:每個分支應輸出結構化 JSON,便於復盤時間線而無需翻 SSH 歷史。臨時租用溢出 Mac 時,在 CMDB 用與自動化一致的前綴打標籤——隨意主機名容易導致重複註冊、搶走一半佇列容量。
區域備用與突發租用
若 Mac 池只在一個城市,排空幾乎必然變成佇列事件。在香港、日本、韓國、新加坡或美國放置備用 Mac mini M4,可在不打飛的送筆電的情況下吸收維護視窗。NodeMac 的 區域定價 支援短期租用,正適合這類重疊期。補丁後若需互動確認,可搭配 SSH/VNC 說明文件 接入主控台。
減少工單的溝通模板要點
複製貼上也要講紀律。每次至少寫清四件事:受影響的標籤、UTC 與本地時間的起止視窗、即時佇列深度查看位置、以及作業超過公告視窗時工程師該怎麼做。省略「卡住怎麼辦」說明的團隊,首小時內重複 IT 工單量往往上升約 3 倍——量一次你就再也不會漏這一行。
大型排空後花 15 分鐘 做簡短復盤:實際停機是否超估、是否有人繞過標籤硬編碼 Runner 名、溢出容量是否真的吃到流量?把結論寫進下一次維護 RFC,流程才會複利而不是每季歸零。變更單裡附一張編排器「執行中作業」曲線截圖,方便後人看客觀證據而非口述記憶。
常見問題
發佈凍結週還要排空嗎?
外觀類補丁可盡量延後;若安全強制要求,提前加機並縮短排空視窗,而不是整個跳過流程。
維護超出變更視窗怎麼辦?
先延長備用標籤路由,再發明確的「尚未恢復」更新附新 ETA。在管理層以為 CI 健康時默默餓死佇列,比回滾舊映像昂貴得多。
Mac mini M4 硬體讓排空測算更穩定:Apple Silicon 在混合編譯與模擬器負載下功耗曲線平穩,統一記憶體減少長排空中的交換卡頓,物理隔離意味著備用機表現像生產環境——不會像筆電熱節流那樣中途掉速。NodeMac 在香港、日本、韓國、新加坡與美國提供帶 SSH 與 VNC 的專用 Mac mini,讓備用池是真實機櫃節點而非共享虛擬機。按量租用突發容量,可把「維護季」從資本項目變成可與切換、稽核並排安排的營運科目。