Escalonar ambientes

Cloud Composer 1 | Cloud Composer 2

Nesta página, descrevemos como escalonar ambientes do Cloud Composer no Cloud Composer 2.

Outras páginas sobre escalonamento:

Escalonar vertical e horizontalmente

Opções de escalonamento horizontal:

Opções para escalonamento vertical:

Ajustar os números mínimo e máximo de workers

É possível definir o número mínimo e máximo de workers no ambiente. O Cloud Composer faz o escalonamento automático do ambiente dentro dos limites definidos. É possível ajustar esses limites a qualquer momento.

Console

  1. Acesse a página Ambientes no console do Google Cloud:

    Acesse a página "Ambientes"

  2. Selecione o ambiente.

  3. Acesse a guia Configuração do ambiente.

  4. No item Recursos > Configuração de cargas de trabalho, clique em Editar.

  5. Na caixa de diálogo Configuração de cargas de trabalho, na seção Escalonamento automático de workers, ajuste os limites dos workers do Airflow:

    • No campo Número mínimo de workers, especifique o número de workers do Airflow que o ambiente precisa sempre executar. O número de workers no ambiente não fica abaixo desse número, mesmo que um número menor de workers possa processar a carga.

    • No campo Número máximo de workers, especifique o número máximo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que seja necessário um número maior de workers para processar a carga.

  6. Clique em Save.

gcloud

Execute o seguinte comando da Google Cloud CLI:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • WORKERS_MIN pelo número mínimo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não fica abaixo desse número, mesmo que um número menor de workers possa lidar com a carga.
  • WORKERS_MAX pelo número máximo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que seja necessário um número maior de workers para processar a carga.

Exemplo:

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount.

    2. No corpo da solicitação, nos campos minCount e maxCount, especifique os novos limites de worker.

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX
    }
  }
}

Substitua:

  • WORKERS_MIN pelo número mínimo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não fica abaixo desse número, mesmo que um número menor de workers possa lidar com a carga.
  • WORKERS_MAX pelo número máximo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que seja necessário um número maior de workers para processar a carga.

Exemplo:

// 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": {
      "minCount": 2,
      "maxCount": 6
    }
  }
}

Terraform

Os campos min_count e max_count no bloco workloadsConfig.worker especificam o número mínimo e máximo de workers no ambiente:

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
      }
    }

  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • WORKERS_MIN pelo número mínimo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não fica abaixo desse número, mesmo que um número menor de workers possa lidar com a carga.
  • WORKERS_MAX pelo número máximo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que seja necessário um número maior de workers para processar a carga.

Exemplo:

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

  config {

    workloads_config {
      worker {
        min_count = 2
        max_count = 6
      }
    }

  }
}

Ajustar o número de programadores

Seu ambiente pode executar mais de um programador do Airflow ao mesmo tempo. Use vários programadores para distribuir a carga entre várias instâncias do programador e tenha melhor desempenho e confiabilidade.

É possível ter até 10 programadores no ambiente.

Aumentar o número de programadores nem sempre melhora o desempenho do Airflow. Por exemplo, ter apenas um programador pode proporcionar um desempenho melhor do que com dois. Isso pode acontecer quando o programador extra não é utilizado e, portanto, consome recursos do seu ambiente sem contribuir com o desempenho geral. O desempenho real do programador depende do número de workers do Airflow, do número de DAGs e tarefas executados no ambiente e da configuração do Airflow e do ambiente.

Recomendamos começar com dois programadores e depois monitorar o desempenho do ambiente. Se você alterar o número de programadores, será possível escalonar o ambiente novamente para o número original de programadores.

Para mais informações sobre como configurar vários programadores, consulte a documentação do Airflow.

Para alterar o número de programadores do seu ambiente:

Console

  1. Acesse a página Ambientes no console do Google Cloud:

    Acessar a página "Ambientes"

  2. Selecione o ambiente.

  3. Acesse a guia Configuração do ambiente.

  4. No item Recursos > Configuração de cargas de trabalho, clique em Editar.

  5. Na caixa de diálogo Configuração de cargas de trabalho, na lista suspensa Número de programadores, defina o número de programadores para o ambiente.

  6. Clique em Save.

gcloud

Execute o seguinte comando da Google Cloud CLI:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-count SCHEDULER_COUNT

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • SCHEDULER_COUNT pelo número de programadores.

Exemplo:

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-count 2

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.softwareConfig.workloadsConfig.scheduler.

    2. No corpo da solicitação, no campo count, especifique o número de programadores.

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": SCHEDULER_COUNT
    }
  }
}

Substitua:

  • SCHEDULER_COUNT pelo número de programadores.

Exemplo:

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

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": 2
    }
  }
}

Terraform

O campo count no bloco workloads_config.scheduler especifica o número de programadores no seu ambiente:

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

  config {

    workloads_config {
      scheduler {
        count = SCHEDULER_COUNT
      }
    }

  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • SCHEDULER_COUNT pelo número de programadores.

Exemplo:

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

  config {

    workloads_config {

      scheduler {
        count = 2
      }

    }
  }
}

Ajustar o número de acionadores

É possível definir o número de engatilhadores como zero, mas é necessário ter pelo menos uma instância de acionador no ambiente (ou pelo menos duas em ambientes altamente resilientes) para usar operadores adiáveis nos DAGs.

Dependendo da configuração de resiliência do ambiente, há diferentes configurações possíveis para o número de engatilhadores:

  • Resiliência padrão: execute até 10 acionadores
  • Alta resiliência: pelo menos 2 e no máximo 10

Mesmo que o número de acionadores seja definido como zero, uma definição de pod do acionador será criada e ficará visível no cluster do ambiente, mas nenhuma carga de trabalho do acionador real será executada.

Se você não tiver mais de zero acionadores, eles serão faturados com as SKUs do Compute do Cloud Composer, assim como outros componentes do ambiente.

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. No item Recursos > Cargas de trabalho, clique em Editar. O painel Configuração de cargas de trabalho será aberto.

  5. Na seção Acionador, use o campo Número de acionadores para inserir o número de acionadores no ambiente.

    Se você definir pelo menos um engatilhador para o ambiente, use os campos CPU e Memória para configurar a alocação de recursos para os acionadores.

  6. Clique em Salvar e aguarde até que o ambiente seja atualizado.

gcloud

Execute o seguinte comando da Google Cloud CLI:

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

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • TRIGGERER_COUNT pelo número de acionadores.

    • Para ambientes de resiliência padrão, use um valor entre 0 e 10.
    • Para ambientes altamente resilientes, use 0 ou um valor entre 2 e 10.
  • TRIGGERER_CPU pelo número de CPUs de um acionador, em unidades de vCPU. Essa sinalização é opcional. Se não for fornecida, o valor padrão de 0.5 vCPU será usado. Valores permitidos: 0.5, 0.75, 1.

  • TRIGGERER_MEMORY pela quantidade de memória para um acionador. Essa sinalização é opcional. Se não for fornecida, o valor padrão de 0.5 GB será usado.

    A memória mínima necessária é igual ao número de CPUs alocadas para os engatilhadores. O valor máximo permitido é igual ao número de CPUs do engatilhador multiplicado por 6,5.

    Por exemplo, se você definir a sinalização --triggerer-cpu como 1, o valor mínimo de --triggerer-memory será 1 e o valor máximo será 6.5.

Exemplos:

  • Defina a contagem de acionadores como 0 para desativar os acionadores. Essa operação não requer a especificação da CPU ou da memória para os acionadores.

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 0
    
  • Escalonamento para várias instâncias de acionador:

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 4 \
      --triggerer-cpu 1 \
      --triggerer-memory 1GB
    

API

  1. Crie uma solicitação de API environments.patch.

  2. No parâmetro de consulta updateMask, especifique a máscara config.workloadsConfig.triggerer.

  3. No corpo da solicitação, use o seguinte objeto

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

Substitua:

  • TRIGGERER_COUNT pelo número de acionadores.

    • Para ambientes de resiliência padrão, use um valor entre 0 e 10.
    • Para ambientes altamente resilientes, use 0 ou um valor entre 2 e 10.

      Se você usar pelo menos um engatilhador, também vai precisar especificar os valores para TRIGGERER_CPU e TRIGGERER_MEMORY:

      • Defina TRIGGERER_CPU como o número de CPUs de um acionador, em unidades de vCPU. Valores permitidos: 0.5, 0.75, 1.

      • Defina TRIGGERER_MEMORY como a quantidade de memória de um acionador. A memória mínima necessária é igual ao número de CPUs alocadas para os engatilhadores. O valor máximo permitido é igual ao número de CPUs do engatilhador multiplicado por 6,5.

        Por exemplo, se você definir TRIGGERER_CPU como 1, o valor mínimo de TRIGGERER_MEMORY será 1 e o valor máximo será 6.5.

Exemplos:

  • Defina a contagem de acionadores como 0 para desativar os acionadores. Essa operação não requer a especificação da CPU ou da memória para os acionadores.

    // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
    // locations/us-central1/environments/example-environment?updateMask=
    // config.workloadsConfig.triggerer
    "config": {
      "workloadsConfig": {
        "triggerer": {
          "count": 0
        }
      }
    }
    
  • Escalonamento para várias instâncias de acionador:

    // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
    // locations/us-central1/environments/example-environment?updateMask=
    // config.workloadsConfig.triggerer
    "config": {
      "workloadsConfig": {
        "triggerer": {
          "count": 4,
          "cpu": 1,
          "memoryGb": 1
        }
      }
    }
    

Terraform

O campo count no bloco workloads_config.triggerer especifica o número de engatilhadores no seu ambiente:

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

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
      }
    }

  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • TRIGGERER_COUNT pelo número de acionadores.

Exemplo:

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

  config {

    workloads_config {

      triggerer {
        count = 1
      }

    }
  }
}

Ajuste os parâmetros de desempenho e escalonamento do worker, do programador, do acionador e do servidor da Web

É possível especificar a quantidade de CPUs, memória e espaço em disco usados pelo seu ambiente. Dessa forma, é possível aumentar o desempenho do ambiente, além do escalonamento horizontal fornecido usando vários workers e programadores.

Console

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.

  3. Acesse a guia Configuração do ambiente.

  4. No item Recursos > Cargas de trabalho, clique em Editar. O painel Configuração de cargas de trabalho será aberto.

  5. Nas listas suspensas Número de programadores e Número de acionadores, selecione o número de programadores e acionadores no seu ambiente.

  6. No painel Configuração de cargas de trabalho, nos campos CPU, Memória e Armazenamento, especifique o número de CPUs, memória e armazenamento para programadores, gatilhos, servidores da Web e workers do Airflow.

  7. Clique em Save.

gcloud

Os argumentos a seguir controlam os parâmetros de CPU, memória e espaço em disco dos programadores, servidor da Web e workers do Airflow. Cada programador e worker usa a quantidade especificada de recursos.

  • --scheduler-cpu especifica o número de CPUs para um programador do Airflow.
  • --scheduler-memory especifica a quantidade de memória para um programador do Airflow.
  • --scheduler-storage especifica a quantidade de espaço em disco para um programador do Airflow.
  • --triggerer-cpu especifica o número de CPUs de um acionador do Airflow. Valores permitidos: 0.5, 0.75, 1. Se você quiser ajustar a CPU do engatilhador, as sinalizações --triggerer-memory e --triggerer-count também serão necessárias.
  • --triggerer-memory especifica a quantidade de memória para um acionador do Airflow. Se você quiser ajustar a memória do engatilhador, as sinalizações --triggerer-cpu e --triggerer-count também serão necessárias.

    A memória mínima necessária é igual ao número de CPUs alocadas para os engatilhadores. O valor máximo permitido é igual ao número de CPUs do engatilhador multiplicado por 6,5.

    Por exemplo, se você definir a sinalização --triggerer-cpu como 1, o valor mínimo de --triggerer-memory será 1 e o valor máximo será 6.5.

  • --web-server-cpu especifica o número de CPUs para o servidor da Web do Airflow.

  • --web-server-memory especifica a quantidade de memória do servidor da Web do Airflow.

  • --web-server-storage especifica a quantidade de espaço em disco para o servidor da Web do Airflow.

  • --worker-cpu especifica o número de CPUs para um worker do Airflow.

  • --worker-memory especifica a quantidade de memória para um worker do Airflow.

  • --worker-storage especifica a quantidade de espaço em disco para um worker do Airflow.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • SCHEDULER_CPU pelo número de CPUs de um programador, em unidades de vCPU.
  • SCHEDULER_MEMORY pela quantidade de memória de um programador.
  • SCHEDULER_STORAGE pelo tamanho do disco de um programador.
  • TRIGGERER_COUNT pelo número de acionadores. Esse valor é necessário mesmo que você não queira mudar o número atual de engatilhadores e queira apenas ajustar a alocação de CPU ou memória.
  • TRIGGERER_CPU pelo número de CPUs de um acionador, em unidades de vCPU.
  • TRIGGERER_MEMORY pela quantidade de memória para um acionador.
  • WEB_SERVER_CPU pelo número de CPUs do servidor da Web, em unidades de vCPU.
  • WEB_SERVER_MEMORY pela quantidade de memória do servidor da Web.
  • WEB_SERVER_STORAGE pela quantidade de memória do servidor da Web.
  • WORKER_CPU pelo número de CPUs de um worker em unidades de vCPU.
  • WORKER_MEMORY pela quantidade de memória de um worker.
  • WORKER_STORAGE pelo tamanho do disco de um worker.

Exemplo:

gcloud composer environments update example-environment \
    --location us-central1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB\
    --scheduler-storage 2GB \
    --triggerer-count 2 \
    --triggerer-cpu 1 \
    --triggerer-memory 1GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique os campos que você quer atualizar. Por exemplo, para atualizar todos os parâmetros para programadores, especifique a máscara config.workloadsConfig.scheduler.cpu,config.workloadsConfig.scheduler.memoryGb,config.workloadsConfig.scheduler.storageGB.

    Ao atualizar os parâmetros do acionador, especifique a máscara config.workloadsConfig.triggerer. Não é possível especificar máscaras para parâmetros individuais do acionador.

    1. No corpo da solicitação, especifique os parâmetros de escala e desempenho.
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      }
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE
      }
    }
  }

Substitua:

  • SCHEDULER_CPU pelo número de CPUs de um programador, em unidades de vCPU.
  • SCHEDULER_MEMORY pela quantidade de memória de um programador, em GB.
  • SCHEDULER_STORAGE pelo tamanho do disco de um programador, em GB.
  • TRIGGERER_COUNT pelo número de acionadores. Esse parâmetro é necessário mesmo que você não queira alterar o número atual de engatilhadores e queira apenas ajustar a alocação de CPU ou memória.
  • TRIGGERER_CPU pelo número de CPUs de um acionador, em unidades de vCPU. Valores permitidos: 0.5, 0.75, 1.
  • TRIGGERER_MEMORY pela quantidade de memória para um acionador.

    A memória mínima necessária é igual ao número de CPUs alocadas para os acionadores. O valor máximo permitido é igual ao número de CPUs do engatilhador, multiplicado por 6,5.

    Por exemplo, se você definir TRIGGERER_CPU como 1, o valor mínimo de TRIGGERER_MEMORY será 1 e o valor máximo será 6.5.

  • WEB_SERVER_CPU pelo número de CPUs do servidor da Web, em unidades de vCPU.

  • WEB_SERVER_MEMORY pela quantidade de memória do servidor da Web, em GB.

  • WEB_SERVER_STORAGE pelo tamanho do disco do servidor da Web, em GB.

  • WORKER_CPU pelo número de CPUs de um worker em unidades de vCPU.

  • WORKER_MEMORY pela quantidade de memória de um worker, em GB.

  • WORKER_STORAGE pelo tamanho do disco de um worker, em GB.

Exemplo:

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

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "triggerer": {
      "count": 1,
      "cpu": 1,
      "memoryGb": 1
    },
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "worker": {
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

Os blocos a seguir no bloco workloadsConfig controlam os parâmetros de CPU, memória e espaço em disco dos programadores, servidor da Web, gatilhos e workers do Airflow. Cada programador, acionador e worker usa a quantidade especificada de recursos.

  • O campo scheduler.cpu especifica o número de CPUs para um programador do Airflow.
  • O campo scheduler.memory_gb especifica a quantidade de memória para um programador do Airflow.
  • O campo scheduler.storage_gb especifica a quantidade de espaço em disco para um programador.
  • O campo triggerer.cpu especifica o número de CPUs de um acionador do Airflow.
  • O campo triggerer.memory_gb especifica a quantidade de memória para um acionador do Airflow.
  • O campo web_server.cpu especifica o número de CPUs para o servidor da Web do Airflow.
  • O campo web_server.memory_gb especifica a quantidade de memória do servidor da Web do Airflow.
  • O campo web_server.storage_gb especifica a quantidade de espaço em disco para o servidor da Web do Airflow.
  • O campo worker.cpu especifica o número de CPUs para um worker do Airflow.
  • O campo worker.memory_gb especifica a quantidade de memória para um worker do Airflow.
  • O campo worker.storage_gb especifica a quantidade de espaço em disco para um worker do Airflow.
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
      }
      triggerer {
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
        count = 1
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • SCHEDULER_CPU pelo número de CPUs de um programador, em unidades de vCPU.
  • SCHEDULER_MEMORY pela quantidade de memória de um programador, em GB.
  • SCHEDULER_STORAGE pelo tamanho do disco de um programador, em GB.
  • TRIGGERER_CPU pelo número de CPUs de um acionador, em unidades de vCPU.
  • TRIGGERER_MEMORY pela quantidade de memória para um acionador, em GB.
  • WEB_SERVER_CPU pelo número de CPUs do servidor da Web, em unidades de vCPU.
  • WEB_SERVER_MEMORY pela quantidade de memória do servidor da Web, em GB.
  • WEB_SERVER_STORAGE pelo tamanho do disco do servidor da Web, em GB.
  • WORKER_CPU pelo número de CPUs de um worker em unidades de vCPU.
  • WORKER_MEMORY pela quantidade de memória de um worker, em GB.
  • WORKER_STORAGE pelo tamanho do disco de um worker, em GB.

Exemplo:

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
      }
      triggerer {
        cpu = 0.5
        memory_gb = 0.5
        count = 1
      }
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      worker {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

Ajustar o tamanho do ambiente

O tamanho do ambiente controla os parâmetros de desempenho da infraestrutura gerenciada do Cloud Composer que inclui o banco de dados do Airflow. Selecione um tamanho maior de ambiente se você quiser executar um grande número de DAGs e tarefas.

Console

  1. Acesse a página Ambientes no console do Google Cloud:

    Acessar a página "Ambientes"

  2. Selecione o ambiente.

  3. Acesse a guia Configuração do ambiente.

  4. No item Recursos > Infraestrutura principal, clique em Editar.

  5. Na caixa de diálogo Infraestrutura principal, no campo Tamanho do ambiente, especifique o tamanho do ambiente.

  6. Clique em Save.

gcloud

O argumento --environment-size controla o tamanho do ambiente:

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

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • ENVIRONMENT_SIZE por small, medium ou large.

Exemplo:

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

API

  1. Crie uma solicitação de API environments.patch.

  2. Nesta solicitação:

    1. No parâmetro updateMask, especifique a máscara config.environmentSize.

    2. No corpo da solicitação, especifique o tamanho do ambiente.

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

Substitua:

  • ENVIRONMENT_SIZE pelo tamanho do ambiente, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM ou ENVIRONMENT_SIZE_LARGE.

Exemplo:

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

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

Terraform

O campo environment_size no bloco config controla o tamanho do ambiente:

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

  config {

    environment_size = "ENVIRONMENT_SIZE"

  }
}

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente
  • LOCATION pela região em que o ambiente está localizado;
  • ENVIRONMENT_SIZE pelo tamanho do ambiente, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM ou ENVIRONMENT_SIZE_LARGE.

Exemplo:

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

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

A seguir