GitHub user michaelosthege closed a discussion: High CPU and database load 
caused by Airflow 3 dag-processor and scheduler

### Apache Airflow version

3.0.2

### If "Other Airflow 2 version" selected, which one?

_No response_

### What happened?

Yesterday I upgraded my small home setup (Raspberry Pi, 2 dags, 3 tasks) to 
Airflow 3.

In comparison to Airflow 2.9.0 the CPU load has increased dramatically:

<img width="2768" height="530" alt="Image" 
src="https://github.com/user-attachments/assets/7ab02ab9-b3c5-4281-ae6b-69e6dccfe3b3";
 />



A few minutes later I also stopped the scheduler and database CPU load went 
down too.

### What you think should happen instead?

Airflow 3 should cause the same or lower CPU load to Airflow 2.

### How to reproduce

My docker-compose setup uses this `Dockerfile`


```
FROM apache/airflow:3.0.2

ENV AIRFLOW__CORE__EXECUTOR=LocalExecutor
ENV AIRFLOW__API__BASE_URL="http://junas.fritz.box:5000";
ENV 
AIRFLOW__CORE__AUTH_MANAGER="airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager"
# Note: AIRFLOW__API_AUTH__JWT_SECRET is set in the .env file
ENV 
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN="postgresql+psycopg2://airflowu:[email protected]:5001/airflowdb"
ENV AIRFLOW__CORE__LOAD_EXAMPLES="False"
ENV AIRFLOW__SCHEDULER__ENABLE_HEALTH_CHECK="True"


# Settings to reduce CPU load
ENV AIRFLOW__API__WORKERS=1
ENV AIRFLOW__SCHEDULER__MIN_FILE_PROCESS_INTERVAL=120
ENV AIRFLOW__DAG_PROCESSOR__PARSING_PROCESSES=1
ENV AIRFLOW__DAG_PROCESSOR__BUNDLE_REFRESH_CHECK_INTERVAL=60

COPY requirements.txt /tmp/requirements.txt  # one entry: paho-mqtt
RUN pip install -r /tmp/requirements.txt
```

The docker-compose services:

```yaml
  airflow-db:
    container_name: airflow-db
    build:
      context: ./dockerfiles/airflow-postgres
      dockerfile: Dockerfile
    restart: unless-stopped
    ports:
      - "5001:5432"
    volumes:
      - af_pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: airflowdb
      POSTGRES_USER: airflowu
      POSTGRES_PASSWORD: xxxxxxx
  airflow-api-server:
    container_name: airflow-api-server
    build:
      context: ./dockerfiles/airflow
      dockerfile: Dockerfile
    depends_on:
      - airflow-db
    restart: unless-stopped
    env_file: ./dockerfiles/airflow/.env
    ports:
      - "5000:8080"
    user: "1000:0"
    volumes:
      - /home/admin/airflow/dags:/opt/airflow/dags
      - /home/admin/airflow/logs:/opt/airflow/logs
    command: bash -c "airflow db migrate && airflow api-server"
    healthcheck:
      test: ["CMD", "curl", "--fail", "http://localhost:8080/api/v2/version";]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 30s
  airflow-dag-processor:
    container_name: airflow-dag-processor
    build:
      context: ./dockerfiles/airflow
      dockerfile: Dockerfile
    depends_on:
      - airflow-db
      - airflow-api-server
    restart: unless-stopped
    env_file: ./dockerfiles/airflow/.env
    user: "1000:0"
    volumes:
      - /home/admin/airflow/dags:/opt/airflow/dags
      - /home/admin/airflow/logs:/opt/airflow/logs
    command: bash -c "airflow dag-processor"
    healthcheck:
      test: ["CMD-SHELL", 'airflow jobs check --job-type DagProcessorJob']
      interval: 30s
      timeout: 20s
      retries: 5
      start_period: 30s
  airflow-scheduler:
    container_name: airflow-scheduler
    build:
      context: ./dockerfiles/airflow
      dockerfile: Dockerfile
    depends_on:
      - airflow-db
      - airflow-api-server
      - airflow-dag-processor
    restart: unless-stopped
    env_file: ./dockerfiles/airflow/.env
    user: "1000:0"
    volumes:
      - /home/admin/airflow/dags:/opt/airflow/dags
      - /home/admin/airflow/logs:/opt/airflow/logs
    command: bash -c "airflow scheduler"
    healthcheck:
      test: ["CMD", "curl", "--fail", "http://localhost:8974/health";]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 30s
```

### Operating System

Debian GNU/Linux 12 (bookworm)

### Versions of Apache Airflow Providers

_No response_

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### Anything else?

_No response_

### Are you willing to submit PR?

- [x] Yes I am willing to submit a PR!

### Code of Conduct

- [x] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)


GitHub link: https://github.com/apache/airflow/discussions/53177

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to