跳至主要內容

執行個體狀態

每個執行個體都恰好處於八種狀態之一。執行個體 頁面上的徽章、執行個體詳細頁面上的徽章,以及 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(恢復被拒或始終未獲確認)、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 — 對 GPU 已被釋放的執行個體來說,拒絕通常表示另一位租用者現在正在用它們(gpus_unavailable)。容器從機器上消失的已停止執行個體會轉為 error(workload_gone),因為已經沒有可以啟動的東西了。執行個體上的 error_code 會指出發生了什麼事,執行個體頁面也會說明它。

任何要求「你可以要求」欄位以外之轉換的請求,都會以 409 INVALID_STATE 被拒絕,執行個體則原封不動。API 會在執行個體的 allowed_actions 中列出此刻允許的動作。

相關內容​