確認訂單狀態、節點區域、機器名稱與租期資訊一致。
複製主機位址、使用者名稱與臨時憑證,勿轉發給無關成員。
首次連線後更新密碼,新增團隊使用的 SSH 公開金鑰。
記錄 macOS、Xcode、磁碟空間與網路存取結果。
先確認控制台中的節點與連線資料,再透過 SSH 或 VNC 建立首次工作階段。遷移、建置或 MLX 服務發生異常時,依本頁順序縮小問題範圍,避免在設定、網路與任務日誌之間反覆猜測。
確認訂單狀態、節點區域、機器名稱與租期資訊一致。
複製主機位址、使用者名稱與臨時憑證,勿轉發給無關成員。
首次連線後更新密碼,新增團隊使用的 SSH 公開金鑰。
記錄 macOS、Xcode、磁碟空間與網路存取結果。
不要一開始就遷移儲存庫或安裝大量相依套件。先完成四項基礎核對,確認機器身分、連線方式與憑證更新都能正常執行。
登入控制台,檢查訂單號碼、節點區域、機器名稱、租期與連線資料。節點與訂單不一致時先停止操作,避免將檔案遷移至錯誤機器。
命令列設定、自動化與日誌檢查優先使用 SSH;需要圖形介面、Xcode 設定或桌面操作時使用 VNC。建議首次連線時各驗證一次。
進入機器後立即更新臨時密碼,再將團隊核准的 SSH 公開金鑰寫入授權清單。金鑰應按成員區分,離開專案時個別撤銷。
安裝工具前記錄系統版本、Xcode 路徑、可用磁碟空間與基礎網路結果。後續故障可直接與這份基線比較。
sw_vers 查看系統版本xcode-select -p 查看工具鏈路徑df -h 查看磁碟空間遷移順序決定疑難排解成本。先移動可驗證的資料,再還原固定版本的工具鏈,最後整合 CI 或 self-hosted runner。
優先透過 Git 下載程式碼儲存庫。大型模型、建置快取與產出物應個別同步,傳輸完成後核對檔案大小或雜湊值。
確認專案要求的 Xcode、命令列工具、Ruby、Node.js 與 CocoaPods 版本。先執行最小建置,再還原完整相依快取。
將 runner 工作目錄、快取目錄與日誌目錄分開。首次任務不要並行,先觀察下載、建置、測試與封存各階段的輸出。
以下記錄展示排查順序,不包含專案專用憑證。先確認遠端工作階段,再執行 Xcode 建置,最後觀察自動化工具是否回傳成功狀態。
$ ssh vmkeep@203.0.113.24
vmkeep-m4-plus
區域
JP
Shell
/bin/zsh
$ xcodebuild -workspace Client.xcworkspace -scheme Client -configuration Release build
[1/4] 解析套件相依性
[2/4] 編譯原始碼與資源
[3/4] 執行單元測試
[4/4] 封存建置輸出
$ bundle exec fastlane ios build
exit=0 · archive=Client.xcarchive · duration=08m23s
若某個步驟失敗,請保留失敗指令前後至少 30 行輸出、結束碼、Xcode 版本與發生時間。提交工單前請移除權杖、私密金鑰與簽章材料原文。
持續建置的問題通常來自執行身分、目錄權限、版本漂移或快取污染。以下五項應在第一條正式流程執行前確認。
使用獨立執行使用者註冊 self-hosted runner,為建置類型設定清晰標籤。確認服務重新啟動後 runner 能自動恢復上線狀態。
將原始碼簽出、暫存建置、封存產出物與任務日誌放在不同目錄,避免失敗任務留下的檔案影響下一次執行。
快取鍵至少包含相依鎖定檔、Xcode 版本與架構資訊。出現無法解釋的編譯錯誤時,先使用空快取重新執行一次。
簽章檔案、密碼與權杖僅在任務執行時注入,不寫入儲存庫、一般日誌或長期共用目錄。任務結束後清除暫存副本。
先區分網路下載失敗、相依性解析失敗、編譯失敗與測試失敗。確認任務具備冪等性後,才自動重試對應階段。
| 階段 | 優先核對 | 應保留的結果 | 不應寫入日誌 |
|---|---|---|---|
| 程式碼下載 | 儲存庫權限、遠端位址、網路解析 | 提交雜湊、分支、失敗指令 | 存取權杖原文 |
| 安裝相依套件 | 鎖定檔、映像檔設定、快取鍵 | 工具版本、相依性解析輸出 | 私有憑證原文 |
| Xcode 建置 | scheme、SDK、建置設定、目標平台 | 完整指令、結束碼、關鍵錯誤 | 簽章密碼 |
| 測試與封存 | 測試目標、逾時、產出物目錄 | 測試報告、封存路徑、任務耗時 | 簽章材料原始檔案 |
先證明模型能在機器本機完成一次請求,再檢查監聽位址與連接埠。模型尚未成功載入前,不要直接排查遠端用戶端。
檢查設定中的模型目錄、權重檔案與讀取權限。相對路徑應以服務實際工作目錄為基準。
test -r /srv/models/model && echo readable
先以單一請求載入模型,記錄載入前後的記憶體變化。若程序結束,請檢查系統日誌與應用程式結束碼。
ps -o pid,rss,command -p <PID>
確認服務繫結的位址與連接埠。僅監聽迴路位址時,遠端用戶端無法直接連線。
lsof -nP -iTCP:<PORT> -sTCP:LISTEN
在雲端 Mac 內部傳送最小請求,記錄回應狀態、首字延遲、總耗時與模型回傳內容。
curl -sS http://127.0.0.1:<PORT>/health
本機請求成功後,再從授權用戶端驗證遠端存取。比較用戶端時間、服務日誌與請求識別碼。
curl -sS https://<YOUR-ENDPOINT>/health
具體模型能否執行取決於模型格式、量化方式、相依版本與所選記憶體配置。
首字延遲與持續吞吐量應在固定模型、固定參數與固定並行條件下比較。
提交模型路徑結構、啟動指令、程序日誌、監聽結果與去識別化後的最小請求。
統一術語有助於減少團隊溝通偏差。提交工單時,請盡量使用下列名稱描述機器、連線方式與任務角色。
每類問題都先核對訂單與節點,再檢查用戶端、網路與機器內部狀態。展開對應項目即可查看建議順序與工單資訊。
檢查順序:確認訂單與節點資料,重新複製主機位址與使用者名稱,檢查輸入法與密碼字元,核對 SSH 主機指紋或 VNC 位址,再換用已知可用的網路重新測試。
工單資訊:訂單號碼、節點區域、發生時間、用戶端名稱、完整錯誤文字,以及已隱藏主機敏感部分的連線指令。
檢查順序:記錄中斷時間,測試本機網路穩定性,關閉可能改寫路由的代理程式後重新測試,查看 SSH keepalive 設定,並確認中斷是否與高負載任務同時發生。
工單資訊:中斷時段、所在網路環境、連續測試次數、用戶端日誌、任務類型與中斷前後的系統負載。
檢查順序:降低顯示解析度與色彩品質,暫停佔用大量頻寬的同步任務,比較有線與無線網路,確認是否僅在特定時間或特定用戶端出現。
工單資訊:節點區域、用戶端版本、顯示解析度、本機網路類型、延遲出現時間與可重現的操作步驟。
檢查順序:執行 df -h 查看分割區,再按目錄統計 DerivedData、封存產出物、相依快取、模擬器資料與任務工作區。刪除前先確認產出物已匯出。
工單資訊:磁碟使用結果、增長最快的目錄、最近執行的任務、已執行的清理指令,以及是否需要評估儲存空間附加項目。
檢查順序:比較執行使用者、環境變數、工作目錄、Xcode 版本、相依鎖定檔與快取鍵。使用 runner 的執行身分手動執行相同的建置指令,找出最早出現差異的位置。
工單資訊:完整建置指令、Xcode 版本、runner 標籤、失敗結束碼、去識別化日誌,以及手動執行與自動任務之間的差異。
已有訂單與運作中節點的問題,優先透過控制台提交工單;方案選擇、部署範圍與尚未下單的問題,可透過聯絡頁寄送電子郵件諮詢。
用於定位對應機器與租期,請勿提交帳戶密碼。
請註明新加坡、日本(東京)、韓國(首爾)、香港或美國東部。
提供包含時區的時間範圍,方便對應連線與任務記錄。
保留結束碼與錯誤前後的上下文,並移除權杖與敏感憑證。
從初始狀態寫到問題出現,每一步註明預期結果與實際結果。