排解多容器端點問題 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

排解多容器端點問題

下列各節可協助您排解多容器端點的錯誤。

Ping 運作狀態檢查錯誤

使用多個容器時,端點記憶體和 CPU 會在建立端點時承受更高的壓力。具體而言,MemoryUtilizationCPUUtilization指標高於單一容器端點,因為使用率壓力與容器數量成正比。因此,我們建議您選擇具有足夠記憶體的執行個體類型CPU,並確保執行個體上有足夠記憶體,可載入所有模型 (相同的指引適用於部署推論管道)。否則,您的端點建立步驟可能會失敗並顯示錯誤訊息,例如:XXX did not pass the ping health check

缺少 accept-bind-to-port=true Docker 標籤

多容器端點中的容器會接聽 SAGEMAKER_BIND_TO_PORT環境變數指定的連接埠 (而非 8080)。當容器在多容器端點中執行時, SageMaker 會自動將此環境變數提供給容器。如果此環境變數不存在,容器預設使用連接埠 8080。若要表示您的容器符合此需求,請使用下列命令,將標籤新增到您的 Dockerfile:

LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true

否則,您將看到一則錯誤訊息,例如:Your Ecr Image XXX does not contain required com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true Docker label(s).

如果您的容器需要接聽第二個連接埠,請選擇 SAGEMAKER_SAFE_PORT_RANGE 環境變數指定的範圍內的連接埠。將值指定為 格式的包含範圍 XXXX-YYYY,其中 XXXX和 YYYY是多位數整數。當您在多容器端點中執行容器時, 會自動 SageMaker 提供此值。