You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSM SendCommand执行EC2上GPU密集型Python脚本无法完成问题求助

问题排查与解决思路

针对你遇到的SSM命令无法完成的问题,结合你的场景(GPU密集型脚本手动运行正常、SSM执行轻量脚本正常),可以从以下几个方向逐一排查:

1. 实例启动后SSM Agent未就绪就发送命令

start_instances是异步操作,实例进入running状态不代表SSM Agent已经完成注册并能正常接收命令。此时发送的命令可能会处于挂起状态,无法真正执行。

解决方法:
在发送SSM命令前,等待实例的SSM状态变为Online,或者等待EC2的系统/实例状态检查通过。可以通过Boto3接口轮询检查:

import time

# 启动实例后,轮询等待SSM Agent就绪
while True:
    instance_info = ssm.describe_instance_information(
        InstanceInformationFilterList=[
            {'key': 'InstanceIds', 'valueSet': [INSTANCE_ID]}
        ]
    )
    if instance_info['InstanceInformationList'] and instance_info['InstanceInformationList'][0]['PingStatus'] == 'Online':
        break
    time.sleep(10)  # 每10秒检查一次

# 确认就绪后发送SSM命令
response = ssm.send_command(
    DocumentName='AWS-RunShellScript',
    Parameters={'commands': [script], 'executionTimeout': ['18000']},
    InstanceIds=[INSTANCE_ID]
)

2. SSM执行环境与手动登录环境不一致

SSM的AWS-RunShellScript默认以ssm-user身份执行,而你手动操作使用的是ec2-user,两者的环境变量、权限可能存在差异——尤其是GPU相关的驱动、库路径可能未正确加载。

解决方法:

  • 切换到ec2-user身份执行命令,确保和手动操作的环境一致:
    修改脚本内容,添加sudo -u ec2-user前缀:
    sudo -u ec2-user bash -c '
        export HOME="/home/ec2-user"
        export PATH="<你的实际终端PATH>"
        cd /home/ec2-user/directory/src
        python script.py > /home/ec2-user/script_log.log 2>&1
    '
    
  • 加载用户环境配置:在脚本开头添加source /home/ec2-user/.bashrc或source /etc/profile,确保GPU相关环境变量(如CUDA_HOME)被正确加载。

3. 脚本输出占满SSM缓冲区

如果计算密集型脚本有大量标准输出/错误输出,SSM的默认输出缓冲区可能被占满,导致命令挂起无法完成。

解决方法:
将脚本输出重定向到本地文件,避免占用SSM的输出缓冲区:

cd /home/ec2-user/directory/src
python script.py > /home/ec2-user/script_output.log 2>&1

之后可以通过SSM的get_command_invocation接口查看日志,或直接登录实例查看文件内容。

4. 权限或资源访问问题

ssm-user可能没有权限访问脚本目录、执行脚本,或者无法调用GPU资源。

排查步骤:

  • 在脚本中添加权限检查命令,比如ls -l /home/ec2-user/directory/src/script.py,查看是否存在权限报错;
  • 添加nvidia-smi命令,确认GPU资源在SSM会话中是否可用。

5. 脚本隐性交互逻辑

虽然手动运行正常,但脚本可能在非交互式环境(如SSM会话)中存在等待用户输入的逻辑,导致卡住。

解决方法:
检查脚本是否存在需要交互的步骤,修改为非交互式模式(比如添加--non-interactive类参数)。


内容的提问来源于stack exchange,提问作者DavidWebb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:34:53