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

AWS Fargate部署Docker容器conda运行Python脚本被Killed问题

问题排查方向
  • 优先排查OOM(内存不足)触发系统主动杀进程场景:Linux环境下Killed报错是系统OOM Killer机制的典型标识,当进程占用内存超过系统分配上限时,会被系统优先强制终止。你遇到的每次报错进程ID、临时文件名不同,且Fargate每2-3分钟自动重试,完全符合内存超限进程被杀、服务自动重启的特征。
  • 其次排查Dockerfile多阶段构建合理性:当前Dockerfile写了3个FROM语句,多阶段构建默认仅保留最后一个FROM(continuumio/miniconda3)的内容,前面两个阶段安装的gcc、gdal等依赖完全未被带入最终镜像,可确认是否是运行时依赖缺失导致进程异常崩溃,该排查方向优先级低于OOM排查。
  • 再排查Fargate任务资源配置:默认低配置(如你此前使用的256 CPU/512 MB内存)不足以支撑集成conda、gdal、flask的Python服务运行,尤其是涉及空间数据、批量计算的服务内存占用较高,极易触达资源上限。
  • 最后排查应用内存泄漏问题:若资源扩容后仍出现进程被杀报错,再检查server.py代码是否存在大对象未释放、缓存无限制增长等内存泄漏问题。
解决方案

经实际排查确认该问题为Fargate任务分配内存不足导致,扩容容器资源配置即可解决,操作步骤如下:

  1. 注销现有低配置任务定义:
aws ecs deregister-task-definition --task-definition ecs_name:ID
  1. 修改任务定义配置文件,将原有CPU 256、内存512的配置调整为更高规格,示例配置如下:
{
  "family": "fam_name",
  "cpu": "1024",
  "memory": "4096",
  "networkMode": "awsvpc",
  "requiresCompatibilities": [
    "FARGATE"
    // 其余原有配置保持不变
  ]
}

修改完成后执行命令注册新任务定义:

aws ecs register-task-definition --cli-input-json file://~/environment/aws-cli/task-definition.json
  1. 更新ECS服务,使其使用新的任务定义运行:
aws ecs update-service --cluster name-Cluster --service name-Service --task-definition ecs_name:ID

操作完成后服务即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:39:02