跳至主要內容

執行個體狀態

每個執行個體都恰好處於八種狀態之一。執行個體 頁面上的徽章、執行個體詳細頁面上的徽章,以及 API 回傳的 status 欄位,回報的都是同一個值。

這些狀態​

狀態轉換中代表什麼計什麼費可以從它做什麼
creating是你的部署已被接受,Superheat 正在佈建切片並拉取映像檔不收費等待,或直接銷毀
starting是一個已停止的執行個體正在同一台機器上、用同一顆硬碟重新起來不收費等待,或直接銷毀
running否工作負載已就緒,連線資訊已公布GPU:整個切片依報價的每小時價格計價,按秒計量用 SSH 連線、開啟 JupyterLab、讀取日誌、停止、銷毀
stopping是工作負載正在關閉;硬碟會保留不收費等待,或銷毀
stopped否工作負載已關閉;硬碟留在機器上。GPU 仍為你保留——除非餘額用完時平台在機器支援的情況下把它們釋放了硬碟:你的硬碟容量乘上每 GB 每小時的儲存費率啟動、銷毀
destroying是拆除進行中,切片正在釋出不收費等待。再銷毀一次會重新送出拆除
destroyed否終端狀態。硬碟已刪除,報價已回到市集上不收費沒有動作。已銷毀的執行個體不會出現在清單裡,除非你特地把它們叫出來
error否工作負載無法啟動、失敗或遺失,自己執行結束了,或者停止期間它的容器不見了。error_code 會說明是哪一種不收費讀取日誌、銷毀
出錯的執行個體可能仍佔著切片

error 不收任何費用。一旦平台看到工作負載已經結束 —— 失敗、遺失或執行完畢 —— 那些 GPU 就會被釋出,回到該報價的 available_units 裡。工作負載還沒到達主機就失敗的部署,會一直佔著它們,直到執行個體被銷毀。每個出錯的執行個體在被銷毀之前,都會算進 25 個執行個體的上限。

轉換中狀態​

有四種狀態 — creating、starting、stopping 和 destroying — 屬於轉換中:Superheat 正在把這次變更做完,沒有任何計量在跑,而你做什麼都不會讓它更快 — 不過處於 creating、starting 或 stopping 的執行個體可以直接銷毀,不必等它跑完。主控台會為這幾種狀態畫出閃動的徽章,只要你有任何執行個體處在其中一種,就每 3 秒輪詢一次,等一切都安定下來後再退回每 15 秒一次。

執行個體處於 creating 時,主控台會顯示提示 正在佈建你的機器…。映像檔很大時,拉取可能讓它在這裡停上幾分鐘,而拉取時間一律不收費。

哪些轉換是合法的​

從你可以要求平台也可能把它轉到
creatingdestroyingrunning、error
startingdestroyingrunning、stopped(恢復被拒絕或一直沒有確認,包括原來的 GPU 已被別人佔用或已停止服務)、error
runningstopping、destroyingstopped、error
stoppingdestroyingstopped、running(停止一直沒有確認)、error
stoppedstarting、destroyingrunning、error(停止期間容器不見了)
destroying—(再要求一次會重新送出拆除)destroyed、error
destroyed無 — 這個狀態是最終的無
errordestroyingrunning、stopped(發現工作負載其實是健康的)

正常的路徑是 creating → running → stopping → stopped → starting → running。拆除永遠是 destroying → destroyed。

destroying 之所以能從每一個還存在的狀態到達,是刻意的。一個永遠落不了地的部署 —— 放置一直在等、因為機群裡沒有任何東西符合,或者主機已經不認得那個作業 —— 或一次主機始終不回應的停止或啟動,否則就會變成一個你刪不掉的執行個體。還在建立、啟動或停止中的執行個體,你都可以把它銷毀。對已經處於 destroying 的執行個體再發一次 DELETE 也不會被拒絕:它會再要求一次拆除。

平台自己的轉換是為了讓狀態保持真實。主機在 30 分鐘內沒有確認的停止,會把執行個體放回 running —— 容器其實還在執行,所以 GPU 計量重新開始 —— 並繼續重試停止。主機拒絕、連不上或在 30 分鐘內沒有確認的啟動,會把執行個體放回 stopped。執行個體上的 error_code 會說明發生了什麼事,執行個體頁面也會解釋它。

GPU 被釋放過的執行個體啟動時,如果原來那幾張 GPU 正被別人使用,或者在那台機器上已停止服務,啟動會被拒絕:請求本身以 409 CAPACITY_UNAVAILABLE 失敗,或者執行個體先進入 starting、再回到 stopped,error_code 為 gpus_unavailable。執行個體停止期間容器在機器上不見了的,會轉到 error,error_code 為 workload_gone:已經沒有東西可以啟動,只能銷毀。

任何要求進行「你可以要求」一欄以外轉換的請求,都會以 409 INVALID_STATE 被拒絕,執行個體則原封不動。API 會在執行個體的 allowed_actions 裡列出目前允許的操作。

相關內容​