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

AWS MWAA 2.7.2中Airflow任务报return code -9错误的解决咨询

解决AWS MWAA 2.7.2任务返回code -9的方案

先明确:task exited with return code -9 就是任务进程被Linux内核强制终止了,核心原因几乎都是内存不足(OOM)。升级到MWAA 2.7.2后出现该问题,大概率是新版本Airflow、依赖包或调度逻辑的内存需求上升导致,以下是具体解决步骤:

  • 调整任务/Worker内存配额
    先定位出问题的任务所属Worker队列,在MWAA控制台调高该队列的Worker实例内存规格。如果是单个任务需要额外资源,也可以在DAG代码中直接指定内存限制,比如使用PythonOperator时:

    task = PythonOperator(
        task_id="data_process_task",
        python_callable=your_process_func,
        executor_config={"KubernetesExecutor": {"memory": "4096Mi"}}
        # 若使用CeleryExecutor,直接在控制台修改Worker实例类型即可
    )
    

    注意:MWAA不同实例类型对应不同内存上限,需根据任务实际消耗选择合适规格。

  • 排查任务内存泄漏
    检查任务代码是否存在内存未释放的情况——比如数据库连接用完未关闭、循环中累积超大列表、临时对象未清理。可以在任务中加入内存监控代码,定位内存暴涨的节点:

    import psutil
    def your_process_func():
        print(f"当前内存占用: {psutil.Process().memory_info().rss / 1024 / 1024:.2f} MB")
        # 任务逻辑代码...
    
  • 优化任务逻辑降低内存消耗

    • 避免单任务处理超大数据集,拆分任务为多个子任务并行执行
    • 替换内存密集型操作,比如用Pandas的chunksize参数流式读取大文件,替代全量加载到内存
    • 任务执行完毕后及时清理临时文件、缓存变量
  • 检查依赖包兼容性
    升级MWAA 2.7.2后,确认任务使用的第三方依赖(如Pandas、PySpark等)版本是否兼容。部分旧版本依赖可能存在内存占用过高的bug,可在requirements.txt中指定兼容新版本的依赖包,重新部署MWAA环境。

  • 调整Airflow核心配置
    在MWAA的自定义airflow.cfg中修改以下参数:

    • worker_autoscale:限制Worker的并发任务数,避免单Worker负载过高
    • max_task_instance_per_host:降低单台主机可运行的任务实例上限
    • celery_worker_prefetch_multiplier:设置为1,避免Worker预取过多任务占用内存
  • 通过日志定位具体问题任务
    进入CloudWatch的MWAA日志组,筛选return code -9相关日志,先确定是哪些任务出现问题,再针对性优化,避免无差别调整资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:46:23