SageMaker Notebook生命周期配置执行超5分钟超时排查
SageMaker LCC执行超时根因
你用nohup+&仍然触发5分钟超时,核心是3个脚本逻辑问题,和nbconvert本身运行时长无关:
- 后台启动
jupyter nbconvert时没有重定向标准输出、标准错误流,LCC执行的主shell进程会一直持有后台进程的IO句柄,不会真正退出,直到句柄释放,直接拖满超时阈值 - 脚本开头配置了
set -e,但后台进程没有通过disown从shell作业表剥离,主shell会等待后台作业的状态返回,不会提前结束执行 - pip安装依赖时未加
--no-cache-dir参数,默认的包缓存写入、索引拉取流程在网络波动时耗时会大幅上涨;另外旧版source deactivate的conda退出写法存在兼容问题,部分场景下会卡住不返回;wget拉取autostop脚本时未配置超时,网络异常时会无限等待。
修复后的LCC脚本
直接替换原有脚本即可:
set -e ENVIRONMENT=python3 NOTEBOOK_FILE="/home/ec2-user/SageMaker/mynotebook.ipynb" IDLE_TIME=300 # 5minute echo "Activating conda env" echo "PWD: $PWD" source /home/ec2-user/anaconda3/bin/activate "$ENVIRONMENT" echo "Installing packages" pip install --no-cache-dir cloudscraper==1.2.58 bs4 pip install --no-cache-dir pandas pip install --no-cache-dir boto3 s3fs echo "Starting notebook in background" # 重定向所有日志到本地文件,剥离进程和主shell的关联 nohup jupyter nbconvert "$NOTEBOOK_FILE" --ExecutePreprocessor.kernel_name=python3 --to notebook --inplace --ExecutePreprocessor.timeout=-1 --execute > /home/ec2-user/SageMaker/notebook_exec.log 2>&1 & disown echo "Deactivating conda env" conda deactivate echo "Fetching the autostop script" # 给wget加超时,避免网络问题卡住 wget --timeout=10 https://raw.githubusercontent.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/master/scripts/auto-stop-idle/autostop.py echo "Configuring autostop cron job" (crontab -l 2>/dev/null; echo "*/1 * * * * /usr/bin/python $PWD/autostop.py --time $IDLE_TIME --ignore-connections") | crontab -
落地注意事项
- 脚本更新后需要完全停止Notebook实例再重新启动,仅点击实例重启不会重新触发LCC全量执行
- Notebook的执行日志会输出到
/home/ec2-user/SageMaker/notebook_exec.log,如果Notebook本身运行报错可以直接查看该文件定位 - 如果依赖包安装耗时本身就接近5分钟,可以将常用依赖提前打包到Notebook实例的自定义镜像中,省去每次启动时的pip安装耗时,进一步压缩LCC执行时间
原故障报错信息:故障原因:关联至Notebook实例'arn:aws:sagemaker:ap-south-1:588770669142:notebook-instance/web-scraping-routines-lambda'的Notebook Instance Lifecycle Config 'arn:aws:sagemaker:ap-south-1:588770669142:notebook-instance-lifecycle-config/web-scraping-lifecycle'执行时长超过5分钟。若您的Notebook实例具备公网访问权限,请查看CloudWatch日志获取更多详情。
内容的提问来源于stack exchange,提问作者Clock Slave
相关产品推荐
相关产品推荐

