AWS SageMaker创建无服务器推理端点报错原因咨询
报错根因说明
你遇到的启动失败和配置的6GB内存没有任何关联,核心原因是使用的763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.5-cpu-py3镜像版本过旧,未适配SageMaker无服务器端点的运行规则:
- 该PyTorch 1.5版本的官方深度学习容器发布时间远早于SageMaker无服务器推理功能上线时间,所有内置启动逻辑、权限配置都是针对预置实例场景设计的。预置实例模式下容器默认以root用户启动,所有内置脚本、目录的访问权限都能满足要求,因此可以正常运行。
- 无服务器端点的容器运行时默认使用非root用户启动进程,该老镜像内置的启动入口脚本
/usr/local/bin/deep_learning_container.py仅对root用户开放了读、执行权限,非root用户无访问权限,直接触发[Errno 13] Permission denied的致命错误,导致启动流程中断。
日志条目对应说明
日志里的不同信息对应不同的触发逻辑,并非所有条目都是故障根因:
OpenBLAS WARNING - could not determine the L2 cache size on this system, assuming 256k:属于无影响的警告信息,是老版本OpenBLAS在容器环境下的通用提示,不会阻断启动流程。Warning: MMS is using non-default JVM parameters: -XX:-UseContainerSupport:属于启动脚本执行失败后的连带提示,因为入口脚本未正常运行,没有为模型服务器(MMS)注入适配容器环境的JVM参数。log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: logs/mms_log.log (No such file or directory):同样是启动中断后的连锁错误,入口脚本未执行就不会提前创建MMS运行所需的日志目录、初始化工作路径,最终触发文件不存在报错。
修复方案
- 优先替换镜像版本:选择PyTorch 1.12及以上版本的官方CPU推理镜像,这类新版本镜像已经完成无服务器运行时适配,默认支持非root用户启动,不需要额外修改即可正常部署。
- 如果因模型兼容要求必须保留PyTorch 1.5环境,可以基于原有镜像自定义构建:在Dockerfile中为
/usr/local/bin/deep_learning_container.py添加全局可读、可执行权限,提前创建MMS运行所需的日志目录并配置全局读写权限,放开所有启动相关文件的访问权限适配非root运行要求。
内容的提问来源于stack exchange,提问作者anshul jain
相关产品推荐
相关产品推荐

