調度環境資源

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁面說明如何調整 Cloud Composer 環境的規模。

其他有關資源調度的頁面:

垂直和水平縮放

水平調度資源選項:

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

垂直擴展選項:

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

資源限制

元件 最低計數 數量上限 最少 vCPU vCPU 數量上限 vCPU 數量下限 記憶體下限 (GB) 記憶體上限 (GB) 記憶體最小步階 (GB) 每個 1 個 vCPU 的記憶體下限 (GB) 每個 1 個 vCPU 的記憶體容量上限 (GB) 儲存空間下限 (GB) 儲存空間上限 (GB) 儲存空間最小增量 (GB)
排程器 1 3 0.5 1 0.5 1 8 0.25 1 8 0 100 1
觸發器 0 10 0.5 1 0.5 1 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 256 0.25 1 8 0 100 1
DAG 處理器 1 3 0.5 32 0.5、1 或 2 的倍數 1 256 0.25 1 8 0 100 1

調整工作人員參數

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

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

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

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

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

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

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

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

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

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

  6. 按一下 [儲存]

gcloud

以下是可用的 Airflow 工作站參數:

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

執行下列 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 工作人員的最低人數。
  • WORKERS_MAX:Airflow 工作人員人數上限。
  • WORKER_CPU:工作站的 CPU 數量,以 vCPU 為單位。
  • WORKER_MEMORY:工作站的記憶體量。
  • 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 參數中,指定要更新的欄位。舉例來說,如要更新工作站的所有參數,請指定 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 工作人員的最低人數。
  • WORKERS_MAX:Airflow 工作人員人數上限。
  • WORKER_CPU:工作站的 CPU 數量,以 vCPU 為單位。
  • WORKER_MEMORY:工作站的記憶體量 (以 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.max_count:環境可執行的 Airflow 工作人員數量上限。即使需要更多工作站來處理負載,環境中的工作站數量也不會超過這個數字。
  • worker.cpu:Airflow 工作人員的 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 工作人員的最低人數。
  • WORKERS_MAX:Airflow 工作人員人數上限。
  • WORKER_CPU:工作站的 CPU 數量,以 vCPU 為單位。
  • WORKER_MEMORY:工作站的記憶體量 (以 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 個排程器。

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

  • 在 Cloud Composer 3 環境中,Airflow DAG 處理器會以獨立的環境元件執行,與排程器分開。由於 DAG 處理器會將 DAG 的剖析作業從排程器卸載,您可能需要重新分配先前分配給 Airflow 排程器的資源。

    由於排程器不會在 Cloud Composer 3 中剖析 DAG,因此 CPU 和記憶體的資源限制較低,低於 Cloud Composer 2。

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

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

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

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

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

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

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

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

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

  5. 在「Workloads configuration」(工作負載設定) 窗格中,調整 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. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

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

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

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

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

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

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

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

  6. 按一下 [儲存]

gcloud

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

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

    • 如果是標準復原環境,請使用介於 010 之間的值。
    • 如果是具備高度彈性的環境,請使用 0,或介於 210 之間的值。
  • --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:觸發條件數量。

    • 如果是標準復原環境,請使用介於 010 之間的值。
    • 如果是具備高度彈性的環境,請使用 0,或介於 210 之間的值。
  • 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:環境中的觸發條件數量。

    • 如果是標準復原環境,請使用介於 010 之間的值。
    • 如果是具備高度彈性的環境,請使用 0,或介於 210 之間的值。
  • 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、記憶體和磁碟空間量。在 Cloud Composer 3 環境中,Airflow DAG 處理器會做為獨立的環境元件執行。

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

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

主控台

  1. 前往 Google Cloud 控制台的「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. 前往 Google Cloud 控制台的「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.cpuconfig.workloadsConfig.webServer.memoryGbconfig.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
      }
    }

  }
}

調整環境大小

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

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

主控台

  1. 前往 Google Cloud 控制台的「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_SIZEsmallmediumlarge

範例:

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_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_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_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGE

範例:

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

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

後續步驟