調度環境資源

本頁說明如何調整 Managed Airflow 環境的規模。

其他有關擴展的頁面:

垂直和水平縮放

水平資源調度選項:

  • 調整工作站數量下限和上限。
  • 調整排程器、DAG 處理器和觸發器數量。

垂直資源調度選項:

  • 調整工作站、排程器、觸發器、DAG 處理器和網路伺服器的規模與效能參數。
  • 調整環境大小。

資源限制

元件 數量下限 數量上限 最少 vCPU vCPU 上限 vCPU 最小步長 記憶體下限 (GB) 記憶體上限 (GB) 記憶體最小步長 (GB) 每個 vCPU 的記憶體下限 (GB) 每個 1 個 vCPU 的記憶體上限 (GB) 儲存空間下限 (GB) 儲存空間上限 (GB) 儲存空間最小增量 (GB)
排程器 1 3 0.5 2 0.5 1 (Airflow 3 中為 2) 8 0.25 1 8 0 100 1
觸發器 0 10 0.5 1 0.5 1 (Airflow 3 中為 2) 8 0.25 1 8 - - -
網路伺服器 - - 1 (最低支援數量) 4 0.5、1 或 2 的倍數 2 32 0.25 1 8 0 100 1
工作站 1 100 0.5 32 0.5、1 或 2 的倍數 1 (Airflow 3 中為 2) 256 0.25 1 8 0 100 1
DAG 處理器 1 3 0.5 32 0.5、1 或 2 的倍數 1 (Airflow 3 中為 2) 256 0.25 1 8 0 100 1

環境預設

在 Cloud de Confiance 控制台中建立環境時,您可以選取三種環境預設設定之一。這些預設設定會決定環境的初始規模和效能設定;建立環境後,您可以變更預設設定提供的所有規模和效能參數。

建議您根據下列預估值選取預設集:

  • 您打算在環境中部署的 DAG 總數
  • 並行 DAG 執行作業數量上限
  • 並行工作數量上限

環境效能取決於您在環境中執行的特定 DAG 實作方式。下表列出根據平均資源消耗量計算的預估值。如果預期 DAG 會消耗更多資源,請相應調整預估值。

建議預設集 DAG 總數 並行 DAG 執行作業數量上限 並行工作數上限
小 50 15 18
中 250 60 100
大 1000 250 400
特大 3000 750 2250

舉例來說,環境必須執行 40 個 DAG。所有 DAG 都必須同時執行,且每個 DAG 都有一個有效工作。因為並行 DAG 執行和工作數上限超過「小型」預設值的建議估算值,這個環境就會使用「中型」預設值。

調整工作人員參數

您可以為環境設定工作站數量下限與上限。Managed Airflow 會在設定的限制內自動調度環境資源。你隨時可以調整這些限制。

您可以指定環境中 Airflow 工作站使用的 CPU 數量、記憶體和磁碟空間。這樣一來,除了使用多個工作人員提供的水平擴充功能外,您還可以提升環境效能。

控制台

  1. 前往 Cloud de Confiance 控制台的「Environments」(環境) 頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,按一下「編輯」。

  5. 在「Workloads configuration」(工作負載設定) 窗格中,調整 Airflow worker 的參數:

    • 在「工作站數量下限」欄位中,指定環境必須一律執行的 Airflow 工作站數量。即使較少的工作站就能處理負載,環境中的工作站數量在正常運作期間也不會低於這個數字。

    • 在「工作站數量上限」欄位中,指定環境可執行的 Airflow 工作站數量上限。即使需要更多工作站來處理負載,環境中的工作站數量也不會超過這個數字。

    • 在「CPU」、「記憶體」和「儲存空間」欄位中,指定 Airflow worker 的 CPU 數量、記憶體和儲存空間。每個工作站都會使用指定資源量。

  6. 按一下 [儲存]。

gcloud

可用的 Airflow 工作站參數如下:

  • --min-workers:環境必須一律執行的 Airflow worker 數量。即使較少的工作站就能處理負載,環境中的工作站數量也不會低於這個數字。
  • --max-workers:環境可執行的 Airflow worker 數量上限。即使需要更多工作站來處理負載,環境中的工作站數量也不會超過這個數字。
  • --worker-cpu:Airflow worker 的 CPU 數量。
  • --worker-memory:Airflow worker 的記憶體量。
  • --worker-storage:Airflow worker 的磁碟空間量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX \
  --worker-cpu WORKER_CPU \
  --worker-memory WORKER_MEMORY \
  --worker-storage WORKER_STORAGE

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • WORKERS_MIN:Airflow worker 數量下限。
  • WORKERS_MAX:Airflow worker 數量上限。
  • WORKER_CPU:工作站的 CPU 數量,單位為 vCPU。
  • WORKER_MEMORY:worker 的記憶體量。
  • WORKER_STORAGE:工作站的磁碟大小。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6 \
  --worker-cpu 1 \
  --worker-memory 2 \
  --worker-storage 2

API

  1. 建構 environments.patch API 要求。

  2. 在這項要求中:

    1. 在 updateMask 參數中,指定要更新的欄位。舉例來說,如要更新 worker 的所有參數,請指定 config.workloadsConfig.worker.cpu,config.workloadsConfig.worker.memoryGb,config.workloadsConfig.worker.storageGB,config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount 遮罩。

    2. 在要求主體中,指定新的工作站參數。

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX,
      "cpu": WORKER_CPU,
      "memoryGb": WORKER_MEMORY,
      "storageGb": WORKER_STORAGE
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • WORKERS_MIN:Airflow worker 數量下限。
  • WORKERS_MAX:Airflow worker 數量上限。
  • WORKER_CPU:工作站的 CPU 數量,單位為 vCPU。
  • WORKER_MEMORY:worker 的記憶體量,以 GB 為單位。
  • WORKER_STORAGE:工作站的磁碟大小 (GB)。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.worker.minCount,
// config.workloadsConfig.worker.maxCount
// config.workloadsConfig.worker.cpu,
// config.workloadsConfig.worker.memoryGb,
// config.workloadsConfig.worker.storageGB

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": 2,
      "maxCount": 6,
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.worker 區塊中的下列欄位會控管 Airflow 工作站參數。每個工作站都會使用指定數量的資源。

  • worker.min_count:環境必須一律執行的 Airflow worker 數量。即使較少的工作站就能處理負載,環境中的工作站數量也不會低於這個數字。
  • worker.max_count:環境可執行的 Airflow worker 數量上限。即使需要更多工作站來處理負載,環境中的工作站數量也不會超過這個數字。
  • worker.cpu:Airflow worker 的 CPU 數量。
  • worker.memory_gb:Airflow 工作站的記憶體數量。
  • worker.storage_gb:Airflow 工作站的磁碟空間大小。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      worker {
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • WORKERS_MIN:Airflow worker 數量下限。
  • WORKERS_MAX:Airflow worker 數量上限。
  • WORKER_CPU:工作站的 CPU 數量,單位為 vCPU。
  • WORKER_MEMORY:worker 的記憶體量,以 GB 為單位。
  • WORKER_STORAGE:工作站的磁碟大小 (GB)。

範例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      worker {
        min_count = 2
        max_count = 6
        cpu = 1
        memory_gb = 2
        storage_gb = 2
      }
    }

  }
}

調整排程器參數

您的環境可以同時執行多個 Airflow 排程器。使用多個排程器可以將負載分配到多個排程器執行個體,以提升效能和穩定性。

環境中最多可以有 3 個排程器。

調度器擴充時,請注意下列事項:

  • 在 Managed Airflow (第 3 代) 環境中,Airflow DAG 處理器會做為獨立的環境元件執行,與排程器不同。由於 DAG 處理器會將 DAG 的剖析作業從排程器卸載,您可能需要重新分配先前分配給 Airflow 排程器的資源。

    由於排程器不會在 Managed Airflow (第 3 代) 中剖析 DAG,因此 CPU 和記憶體的資源限制較低,低於 Managed Airflow (第 2 代)。

  • 增加排程器數量不一定能提升 Airflow 效能。

    舉例來說,如果額外的排程器未派上用場,但仍耗用環境資源,且對整體效能沒有貢獻,就可能發生這種情況。實際的排程器效能取決於 Airflow 工作站數量、環境中執行的 DAG 和工作數量,以及 Airflow 和環境的設定。

  • 建議您先從兩個排程器開始,然後監控環境的效能。變更排程器數量後,您隨時可以將環境的排程器數量調回原始數量。

如要進一步瞭解如何設定多個排程器,請參閱 Airflow 說明文件。

您可以指定環境中 Airflow 排程器使用的 CPU 數量、記憶體和磁碟空間。這樣一來,除了使用多個排程器提供的水平擴充功能外,您還可以提升環境效能。

控制台

  1. 前往 Cloud de Confiance 控制台的「Environments」(環境) 頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,按一下「編輯」。

  5. 在「工作負載設定」窗格中,調整 Airflow 排程器的參數:

    • 在「Number of schedulers」(排程器數量) 下拉式清單中,選取環境的排程器數量。

    • 在「CPU」、「記憶體」和「儲存空間」欄位中,指定 Airflow 排程器的 CPU 數量、記憶體和儲存空間。每個排程器都會使用指定量的資源。

  6. 按一下 [儲存]。

gcloud

可用的 Airflow 排程器參數如下:

  • --scheduler-count:環境中的排程器數量。

  • --scheduler-cpu:Airflow 排程器的 CPU 數量。

  • --scheduler-memory:Airflow 排程器的記憶體用量。

  • --scheduler-storage:Airflow 排程器的磁碟空間量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-cpu SCHEDULER_CPU \
  --scheduler-memory SCHEDULER_MEMORY \
  --scheduler-storage SCHEDULER_STORAGE \
  --scheduler-count SCHEDULER_COUNT

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。

  • SCHEDULER_CPU:排程器的 CPU 數量,單位為 vCPU。

  • SCHEDULER_MEMORY:排程器的記憶體用量。

  • SCHEDULER_STORAGE:排程器的磁碟大小。

  • SCHEDULER_COUNT:排程器數量。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-cpu 0.5 \
  --scheduler-memory 2.5 \
  --scheduler-storage 2 \
  --scheduler-count 2

API

  1. 建構 environments.patch API 要求。

  2. 在這項要求中:

    1. 在 updateMask 參數中,指定 config.workloadsConfig.scheduler 遮罩,即可更新所有排程器參數,或只更新排程器數量。您也可以指定遮罩,更新個別排程器參數 (count 除外)。例如:config.workloadsConfig.scheduler.cpu。

    2. 在要求主體中,指定新的排程器參數。

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": SCHEDULER_CPU,
      "memoryGb": SCHEDULER_MEMORY,
      "storageGb": SCHEDULER_STORAGE,
      "count": SCHEDULER_COUNT
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。

  • SCHEDULER_CPU:排程器的 CPU 數量,單位為 vCPU。

  • SCHEDULER_MEMORY:排程器的記憶體容量 (以 GB 為單位)。

  • SCHEDULER_STORAGE:排程器的磁碟大小 (單位為 GB)。

  • SCHEDULER_COUNT:排程器數量。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2,
      "count": 2
    }
  }
}

Terraform

workloads_config.scheduler 區塊中的下列欄位會控管 Airflow 排程器參數。每個排程器都會使用指定量的資源。

  • scheduler.count:環境中的排程器數量。

  • scheduler.cpu:Airflow 排程器的 CPU 數量。

  • scheduler.memory_gb:Airflow 排程器的記憶體用量。

  • scheduler.storage_gb:排程器的磁碟空間量。

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
        count = SCHEDULER_COUNT
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。

  • SCHEDULER_CPU:排程器的 CPU 數量,單位為 vCPU。

  • SCHEDULER_MEMORY:排程器的記憶體容量 (以 GB 為單位)。

  • SCHEDULER_STORAGE:排程器的磁碟大小 (單位為 GB)。

  • SCHEDULER_COUNT:排程器數量。

範例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      scheduler {
        
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
        
        count = 2
      }
    }

  }
}

調整觸發者參數

您可以將觸發條件數量設為零,但環境中至少需要一個觸發條件執行個體 (或高復原力環境中至少需要兩個),才能在 DAG 中使用可延遲運算子。

視環境的復原模式而定,觸發器數量可能有多種設定:

  • 標準復原能力:最多可執行 10 個觸發器。
  • 高復原力:至少 2 個觸發器,最多 10 個觸發器。

即使觸發器數量設為零,系統仍會建立觸發器 Pod 定義,並顯示在環境的叢集中,但不會執行實際的觸發器工作負載。

您也可以指定環境中 Airflow 觸發器使用的 CPU、記憶體和磁碟空間量。這樣一來,除了使用多個觸發器提供的水平擴展功能外,您還可以提升環境的效能。

控制台

  1. 前往 Cloud de Confiance 控制台的「Environments」(環境) 頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,按一下「編輯」。

  5. 在「Workloads configuration」(工作負載設定) 窗格中,調整 Airflow 觸發器的參數:

    1. 在「觸發器」部分,於「觸發器數量」欄位中,輸入環境中的觸發器數量。

      如果為環境設定至少一個觸發器,請使用「CPU」和「記憶體」欄位,為觸發器設定資源分配。

    2. 在「CPU」和「記憶體」中,指定 Airflow 觸發器的 CPU、記憶體和儲存空間數量。每個觸發器都會使用指定量的資源。

  6. 按一下 [儲存]。

gcloud

可用的 Airflow 觸發條件參數如下:

  • --triggerer-count:環境中的觸發器數量。

    • 如果是標準復原環境,請使用 0 到 10 之間的值。
    • 如果是具備高度彈性的環境,請使用 0,或是介於 2 和 10 之間的值。
  • --triggerer-cpu:Airflow 觸發器的 CPU 數量。

  • --triggerer-memory:Airflow 觸發器的記憶體用量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --triggerer-count TRIGGERER_COUNT \
  --triggerer-cpu TRIGGERER_CPU \
  --triggerer-memory TRIGGERER_MEMORY

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • TRIGGERER_COUNT:觸發條件數量。
  • TRIGGERER_CPU:觸發器的 CPU 數量,單位為 vCPU。
  • TRIGGERER_MEMORY:觸發器可用的記憶體量。

範例:

  • 擴充至四個觸發器執行個體:
gcloud composer environments update example-environment \
  --location us-central1 \
  --triggerer-count 4 \
  --triggerer-cpu 1 \
  --triggerer-memory 1
  • 將觸發器數量設為 0,即可停用觸發器。這項作業不需要為觸發器指定 CPU 或記憶體。
gcloud composer environments update example-environment \
  --location us-central1 \
  --triggerer-count 0

API

  1. 在 updateMask 查詢參數中,指定 config.workloadsConfig.triggerer 遮罩。

  2. 在要求主體中,指定觸發者的所有三個參數。

"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": TRIGGERER_COUNT,
      "cpu": TRIGGERER_CPU,
      "memoryGb": TRIGGERER_MEMORY
    }
  }
}

更改下列內容:

  • TRIGGERER_COUNT:觸發條件數量。

    • 如果是標準復原環境,請使用 0 到 10 之間的值。
    • 如果是具備高度彈性的環境,請使用 0,或是介於 2 和 10 之間的值。
  • TRIGGERER_CPU:觸發器的 CPU 數量,單位為 vCPU。

  • TRIGGERER_MEMORY:觸發器可用的記憶體量。

範例:

  • 將觸發器數量設為 0,即可停用觸發器。這項作業不需要為觸發器指定 CPU 或記憶體。
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.triggerer
"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": 0
    }
  }
}
  • 擴充至四個觸發器執行個體:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.triggerer
"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": 4,
      "cpu": 1,
      "memoryGb": 1
    }
  }
}

Terraform

workloads_config.triggerer 區塊中的下列欄位會控管 Airflow 觸發器參數。每個觸發器都會使用指定量的資源。

  • triggerer.count:環境中的觸發器數量。

    • 如果是標準復原環境,請使用 0 到 10 之間的值。
    • 如果是具備高度彈性的環境,請使用 0,或是介於 2 和 10 之間的值。
  • triggerer.cpu:Airflow 觸發器的 CPU 數量。

  • triggerer.memory_gb:Airflow 觸發器的記憶體量。

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • TRIGGERER_COUNT:觸發條件數量。
  • TRIGGERER_CPU:觸發器的 CPU 數量,單位為 vCPU。
  • TRIGGERER_MEMORY:觸發器的記憶體容量 (以 GB 為單位)。

範例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
    }

  }
}

調整 DAG 處理器參數

您可以指定環境中的 DAG 處理器數量,以及每個 DAG 處理器使用的 CPU、記憶體和磁碟空間量。在 Managed Airflow (第 3 代) 環境中,Airflow DAG 處理器會以獨立的環境元件執行。

視環境的復原模式而定,DAG 處理器的數量可能有多種設定:

  • 標準復原能力:最多可執行 3 個 DAG 處理器。
  • 高復原力:至少 2 個 DAG 處理器,最多 3 個 DAG 處理器。

控制台

  1. 前往 Cloud de Confiance 控制台的「Environments」(環境) 頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,按一下「編輯」。

  5. 在「Workloads configuration」(工作負載設定) 窗格中,調整 Airflow DAG 處理器的參數:

    • 在「DAG 處理器數量」下拉式清單中,選取環境的 DAG 處理器數量。

      高復原力環境至少需要兩個 DAG 處理器。

    • 在「CPU」、「記憶體」和「儲存空間」欄位中,指定 Airflow DAG 處理器的 CPU 數量 、記憶體和儲存空間。每個 DAG 處理器都會使用指定資源量。

  6. 按一下 [儲存]。

gcloud

可用的 Airflow DAG 處理器參數如下:

  • --dag-processor-count:DAG 處理器數量。

高復原力環境至少需要兩個 DAG 處理器。

  • --dag-processor-cpu:DAG 處理器的 CPU 數量。
  • --dag-processor-memory:DAG 處理器的記憶體量。
  • --dag-processor-storage:DAG 處理器的磁碟空間量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
    --dag-processor-count DAG_PROCESSOR_COUNT \
    --dag-processor-cpu DAG_PROCESSOR_CPU \
    --dag-processor-memory DAG_PROCESSOR_MEMORY \
    --dag-processor-storage DAG_PROCESSOR_STORAGE

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • DAG_PROCESSOR_COUNT:DAG 處理器數量。
  • DAG_PROCESSOR_CPU:DAG 處理器的 CPU 數量。
  • DAG_PROCESSOR_MEMORY:DAG 處理器的記憶體量。
  • DAG_PROCESSOR_STORAGE:DAG 處理器的磁碟空間量。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --dag-processor-count 1 \
  --dag-processor-cpu 0.5 \
  --dag-processor-memory 2 \
  --dag-processor-storage 1

API

  1. 建構 environments.patch API 要求。

  2. 在這項要求中:

    1. 在 updateMask 參數中,指定 config.workloadsConfig.dagProcessor 遮罩,即可更新所有 DAG 處理器參數,包括 DAG 處理器數量。您也可以指定遮罩,更新個別 DAG 處理器參數。例如:config.workloadsConfig.dagProcessor.cpu,config.workloadsConfig.dagProcessor.memoryGb,config.workloadsConfig.dagProcessor.storageGb。

    2. 在要求主體中,指定新的 DAG 處理器參數。

"config": {
  "workloadsConfig": {
    "dagProcessor": {
      "count": DAG_PROCESSOR_COUNT,
      "cpu": DAG_PROCESSOR_CPU,
      "memoryGb": DAG_PROCESSOR_MEMORY,
      "storageGb": DAG_PROCESSOR_STORAGE
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • DAG_PROCESSOR_COUNT:DAG 處理器數量。
  • DAG_PROCESSOR_CPU:DAG 處理器的 CPU 數量,單位為 vCPU。
  • DAG_PROCESSOR_MEMORY:DAG 處理器的記憶體量,以 GB 為單位。
  • DAG_PROCESSOR_STORAGE:DAG 處理器的磁碟空間量 (單位為 GB)。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.dagProcessor

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": 2
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.dag_processor 區塊中的下列欄位會控管 Airflow DAG 處理器參數。每個 DAG 處理器都會使用指定量的資源。

  • dag_processor.count:環境中的 DAG 處理器數量。
  • dag_processor.cpu:DAG 處理器的 CPU 數量。
  • dag_processor.memory_gb:DAG 處理器的記憶體量。
  • dag_processor.storage_gb DAG 處理器的磁碟空間量。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      dag_processor {
        count = DAG_PROCESSOR_COUNT
        cpu = DAG_PROCESSOR_CPU
        memory_gb = DAG_PROCESSOR_MEMORY
        storage_gb = DAG_PROCESSOR_STORAGE
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • DAG_PROCESSOR_COUNT:DAG 處理器數量。
  • DAG_PROCESSOR_CPU:DAG 處理器的 CPU 數量,單位為 vCPU。
  • DAG_PROCESSOR_MEMORY:DAG 處理器的記憶體量,以 GB 為單位。
  • DAG_PROCESSOR_STORAGE:DAG 處理器的磁碟空間量 (單位為 GB)。

範例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      dag_processor {
        count = 1
        cpu = 0.5
        memory_gb = 2
        storage_gb = 1
      }
    }

  }
}

調整網路伺服器參數

您可以指定環境中 Airflow 網路伺服器使用的 CPU 數量、記憶體和磁碟空間。舉例來說,您可以擴充 Airflow UI 的效能,以因應大量使用者或大量受管理 DAG 的需求。

控制台

  1. 前往 Cloud de Confiance 控制台的「Environments」(環境) 頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,按一下「編輯」。

  5. 在「Workloads configuration」(工作負載設定) 窗格中,調整網路伺服器的參數。在「CPU」、「記憶體」和「儲存空間」欄位中,指定網路伺服器的 CPU 數量、記憶體和儲存空間。

  6. 按一下 [儲存]。

gcloud

可用的 Airflow 網路伺服器參數如下:

  • --web-server-cpu:Airflow 網路伺服器的 CPU 數量。
  • --web-server-memory:Airflow 網路伺服器的記憶體量。
  • --web-server-storage:Airflow 網路伺服器的磁碟空間量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --web-server-cpu WEB_SERVER_CPU \
  --web-server-memory WEB_SERVER_MEMORY \
  --web-server-storage WEB_SERVER_STORAGE

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • WEB_SERVER_CPU:網路伺服器的 CPU 數量,單位為 vCPU。
  • WEB_SERVER_MEMORY:網路伺服器的記憶體容量。
  • WEB_SERVER_STORAGE:網路伺服器的記憶體用量。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --web-server-cpu 1 \
  --web-server-memory 2.5 \
  --web-server-storage 2

API

  1. 建構 environments.patch API 要求。

  2. 在這項要求中:

    1. 在 updateMask 參數中,指定 config.workloadsConfig.webServer 遮罩來更新所有網路伺服器參數。您也可以指定這些參數的遮罩,更新個別網頁伺服器參數: config.workloadsConfig.webServer.cpu、 config.workloadsConfig.webServer.memoryGb、 config.workloadsConfig.webServer.storageGb。

    2. 在要求主體中,指定新的網路伺服器參數。

"config": {
  "workloadsConfig": {
    "webServer": {
      "cpu": WEB_SERVER_CPU,
      "memoryGb": WEB_SERVER_MEMORY,
      "storageGb": WEB_SERVER_STORAGE
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • WEB_SERVER_CPU:網路伺服器的 CPU 數量,以 vCPU 為單位。
  • WEB_SERVER_MEMORY:網路伺服器的記憶體量,以 GB 為單位。
  • WEB_SERVER_STORAGE:網路伺服器的磁碟大小 (單位為 GB)。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.webServer.cpu,
// config.workloadsConfig.webServer.memoryGb,
// config.workloadsConfig.webServer.storageGb

"config": {
  "workloadsConfig": {
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.web_server 區塊中的下列欄位會控管網路伺服器參數。

  • web_server.cpu:網路伺服器的 CPU 數量。
  • web_server.memory_gb:網路伺服器的記憶體容量。
  • web_server.storage_gb:網路伺服器的磁碟空間量。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • WEB_SERVER_CPU:網路伺服器的 CPU 數量,以 vCPU 為單位。
  • WEB_SERVER_MEMORY:網路伺服器的記憶體量,以 GB 為單位。
  • WEB_SERVER_STORAGE:網路伺服器的磁碟大小 (單位為 GB)。

範例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

調整環境大小

環境大小會控管代管 Managed Airflow 基礎架構的效能參數,包括 Airflow 資料庫。

如要執行大量 DAG 和工作,請考慮選取較大的環境規模。

控制台

  1. 前往 Cloud de Confiance 控制台的「Environments」(環境) 頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,按一下「編輯」。

  5. 在「資源」>「核心基礎架構」項目中,按一下「編輯」。

  6. 在「核心基礎架構」窗格的「環境大小」欄位中,指定環境大小。

  7. 按一下 [儲存]。

gcloud

--environment-size 引數可控制環境大小:

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --environment-size ENVIRONMENT_SIZE

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • ENVIRONMENT_SIZE:small、medium、large、extra-large。

範例:

gcloud composer environments update example-environment \
    --location us-central1 \
    --environment-size medium

API

  1. 建立 environments.patch API 要求。

  2. 在這項要求中:

    1. 在 updateMask 參數中,指定 config.environmentSize 遮罩。

    2. 在要求主體中指定環境大小。

  "config": {
    "environmentSize": "ENVIRONMENT_SIZE"
  }

更改下列內容:

  • ENVIRONMENT_SIZE:環境大小: ENVIRONMENT_SIZE_SMALL、ENVIRONMENT_SIZE_MEDIUM、 ENVIRONMENT_SIZE_LARGE、 ENVIRONMENT_SIZE_EXTRA_LARGE。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.environmentSize

"config": {
  "environmentSize": "ENVIRONMENT_SIZE_MEDIUM"
}

Terraform

config 區塊中的 environment_size 欄位可控制環境大小:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    environment_size = "ENVIRONMENT_SIZE"

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的區域。
  • ENVIRONMENT_SIZE:環境大小: ENVIRONMENT_SIZE_SMALL、ENVIRONMENT_SIZE_MEDIUM、 ENVIRONMENT_SIZE_LARGE、 ENVIRONMENT_SIZE_EXTRA_LARGE。

範例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

後續步驟