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

Docker部署Airflow环境下为Worker分配更多内存的方法咨询

为Docker部署的Airflow Worker分配更多内存的方法

针对docker-compose部署场景

  • 打开你的docker-compose.yml文件,找到worker服务的配置段,添加内存限制参数:
    services:
      worker:
        # 原有镜像、环境变量等配置
        mem_limit: 8g
        mem_reservation: 6g
    
    其中mem_limit是Worker容器能使用的最大内存,mem_reservation是系统优先分配给容器的内存软限制,可根据实际需求调整数值(比如4g、16g)。
  • 修改完成后,重启Worker服务生效:
    docker-compose up -d --force-recreate worker
    
    如果是用Airflow官方的airflow docker命令启动的环境,先导出配置文件:
    airflow docker compose config > docker-compose.yml
    
    再修改上述参数后重启。

直接启动Worker容器的场景

如果是单独启动Worker容器,可在启动命令中直接指定内存参数:

docker run -d --name airflow-worker --memory 8g --memory-reservation 6g 你的AirflowWorker镜像名

使用KubernetesExecutor的场景

  • 全局配置:修改Airflow的airflow.cfg文件,找到kubernetes_executor模块,设置Worker的内存请求和限制:
    [kubernetes_executor]
    worker_memory_request = 6Gi
    worker_memory_limit = 8Gi
    
  • 单Task配置:如果只想给OCR任务单独分配更多内存,可在DAG的Task中添加executor_config:
    from airflow.operators.python import PythonOperator
    
    def ocr_task_func():
        # 你的EasyOCR逻辑
        pass
    
    ocr_task = PythonOperator(
        task_id="run_easyocr",
        python_callable=ocr_task_func,
        executor_config={
            "KubernetesExecutor": {
                "request_memory": "6Gi",
                "limit_memory": "8Gi"
            }
        }
    )
    

额外优化建议

  • 优化EasyOCR代码:只加载需要识别的语言模型,减少内存占用,比如:
    import easyocr
    reader = easyocr.Reader(['ch_sim', 'en'])  # 仅加载中英文模型
    
  • Task执行完成后手动释放资源:
    del reader
    import gc
    gc.collect()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:10:58