本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
多容器端点问题排查
以下部分可以帮助您排查多容器端点的错误。
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 当您在多容器终端节点中运行容器时,会自动提供此值。