本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
排解多容器端點問題
下列各節可協助您排解多容器端點的錯誤。
Ping 運作狀態檢查錯誤
使用多個容器時,端點記憶體和 CPU 會在建立端點時承受更高的壓力。具體而言,MemoryUtilization
和 CPUUtilization
指標高於單一容器端點,因為使用率壓力與容器數量成正比。因此,我們建議您選擇具有足夠記憶體的執行個體類型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 提供此值。