Configurando o dimensionamento da frota
Ao criar uma frota, use parâmetros de escalonamento para controlar quantos trabalhadores sua frota do Code Engine implanta e como ela responde a mudanças na carga de tarefas.
Todos os parâmetros de dimensionamento são opcionais e podem ser definidos ao criar uma frota.
Parâmetros de escalonamento na CLI do Code Engine
Para criar uma frota, utilize o comando ibmcloud ce fleet run ou ibmcloud ce fleet create . Ele aceita as seguintes opções para dimensionamento de frota. Para obter uma lista completa de
todas as opções de comando disponíveis, consulte a referência da CLI.
--scale-max-
O limite máximo do número total de slots de tarefas simultâneas em todos os trabalhadores. Os trabalhadores são capazes de lidar, no máximo, com esse número de tarefas simultâneas. O valor padrão é
10. --scale-min-
O número mínimo de slots de tarefas simultâneas que são sempre mantidos provisionados, mesmo quando não há tarefas pendentes ou em execução. Os trabalhadores que fornecem essa capacidade permanecem ativos e nunca têm sua carga de trabalho reduzida automaticamente.
Uma frota com trabalhadores ativos devido a essa configuração, mas sem tarefas pendentes ou em andamento, apresenta o status “Em espera ”.
Deve ser menor ou igual a
--scale-max. O valor padrão é0. --scale-spare-
O número de vagas livres para tarefas simultâneas mantidas acima do número atual de tarefas em execução. Quando todos os trabalhadores estão ocupados, a frota disponibiliza trabalhadores adicionais para restabelecer a reserva de pessoal — até
--scale-max. As novas tarefas que chegam enquanto houver capacidade disponível são iniciadas imediatamente, sem esperar por um novo trabalhador.Deve ser menor ou igual a
--scale-max. O valor padrão é0. --scale-down-delay-
Especifica por quanto tempo um worker continua em execução após concluir sua última tarefa, antes que o Code Engine reduza sua capacidade. Um trabalhador cuja última tarefa tenha sido concluída dentro do intervalo de atraso recebe novas tarefas assim que elas chegam.
Especifique um número inteiro positivo para indicar o número de segundos. O valor padrão é
0(os workers são reduzidos assim que não forem mais necessários).
Parâmetros de dimensionamento no console do Code Engine
- Número máximo de vagas para contêineres
-
O limite máximo do número total de slots de tarefas simultâneas em todos os trabalhadores. Os trabalhadores são capazes de lidar, no máximo, com esse número de tarefas simultâneas. O valor padrão é
10. - Número mínimo de vagas para contêineres
-
O número mínimo de slots de tarefas simultâneas que são sempre mantidos provisionados, mesmo quando não há tarefas pendentes ou em execução. Os trabalhadores que fornecem essa capacidade permanecem ativos e nunca têm sua carga de trabalho reduzida automaticamente.
Uma frota com trabalhadores ativos devido a essa configuração, mas sem tarefas pendentes ou em andamento, apresenta o status “Em espera ”.
Deve ser menor ou igual ao número máximo de vagas no contêiner. O valor padrão é
0. - Vagas disponíveis para contêineres
-
O número de vagas livres para tarefas simultâneas mantidas acima do número atual de tarefas em execução. Quando todos os trabalhadores estão ocupados, a frota disponibiliza trabalhadores adicionais para repor a reserva — até o número máximo de vagas para contêineres. As novas tarefas que chegam enquanto houver capacidade disponível são iniciadas imediatamente, sem esperar por um novo trabalhador.
Deve ser menor ou igual ao número máximo de vagas no contêiner. O valor padrão é
0. - Atraso na redução de escala
-
Especifica por quanto tempo um worker continua em execução após concluir sua última tarefa, antes que o Code Engine reduza sua capacidade. Um trabalhador cuja última tarefa tenha sido concluída dentro do intervalo de atraso recebe novas tarefas assim que elas chegam.
Especifique o número de minutos. O valor padrão é
0(os workers são reduzidos assim que não forem mais necessários).
Padrões de carga de trabalho e parâmetros relevantes
A escolha dos parâmetros a serem usados depende de como as tarefas são geradas, quais são seus requisitos de latência e do nível de estabilidade da configuração da frota.
Carga de trabalho em lote de execução única na CLI do Code Engine
Você conhece todas as tarefas desde o início, as atribui ao criar a frota, e a frota encerra suas atividades quando a última tarefa for concluída. Este é o modelo mais simples e não requer nenhuma configuração especial de dimensionamento além
de definir --scale-max para controlar quantas tarefas são executadas em paralelo. Utilize essa abordagem quando precisar de uma configuração de frota dedicada para um conjunto de tarefas.
Opção relevante: --scale-max
Carga de trabalho em lote de execução única no console do Code Engine
Você conhece todas as tarefas desde o início, as atribui ao criar a frota, e a frota encerra suas atividades quando a última tarefa for concluída. Este é o modelo mais simples e não requer nenhuma configuração especial de dimensionamento além de definir o número máximo de slots do contêiner para controlar quantas tarefas são executadas em paralelo. Utilize essa abordagem quando precisar de uma configuração de frota dedicada para um conjunto de tarefas.
Parâmetro relevante: Número máximo de vagas para contêineres
Carga de trabalho em lote agendada na CLI do Code Engine
Você mantém uma frota disponível e adiciona um novo conjunto de tarefas de acordo com um cronograma. Entre os lotes, a frota não tem tarefas pendentes. O intervalo entre os lotes é previsível e longo o suficiente para que não valha a pena
manter os trabalhadores aquecidos; portanto, não há vantagem em usar --scale-min, --scale-spare ou --scale-down-delay. A configuração da frota permanece estável para todos os lotes.
Opção relevante: --scale-max
Carga de trabalho em lote agendada no console do Code Engine
Você mantém uma frota disponível e adiciona um novo conjunto de tarefas de acordo com um cronograma. Entre os lotes, a frota não tem tarefas pendentes. O intervalo entre os lotes é previsível e longo o suficiente para que não valha a pena manter os trabalhadores aquecidos; portanto, não há vantagem em usar os parâmetros “Slots mínimos do contêiner ”, “Slots sobressalentes do contêiner ” ou “Atraso na redução de escala ”. A configuração da frota permanece estável para todos os lotes.
Parâmetro relevante: Número máximo de vagas para contêineres
Carga de trabalho contínua e sensível à latência na CLI do Code Engine
As tarefas surgem de forma imprevisível ao longo do dia — acionadas por ações do usuário, leituras de sensores ou outros eventos em tempo real. Esperar que um novo trabalhador seja inicializado toda vez que uma tarefa chega aumentaria a latência de forma inaceitável. Em vez disso, configure a equipe para manter um grupo de profissionais em prontidão, de modo que as tarefas possam ser iniciadas imediatamente.
Opções relevantes: --scale-max, --scale-min, --scale-spare, --scale-down-delay
- Use
--scale-maxpara definir o número máximo de slots de contêiner que podem ser provisionados. Sua frota se expande até esse limite de simultaneidade, de acordo com a demanda da carga de trabalho. - Use o
--scale-minpara garantir que um conjunto básico de trabalhadores esteja sempre em execução, mesmo quando não houver tarefas na fila. Use essa opção quando o tráfego puder cair a zero por um período, mas você ainda quiser que ele recomece instantaneamente quando for retomado. - Use
--scale-sparepara manter um número de vagas livres para tarefas acima do número atual de tarefas em execução. Quando uma tarefa chega, o processamento começa imediatamente em um trabalhador já em execução, e a frota provisiona mais trabalhadores em segundo plano para repor a capacidade ociosa. - Use
--scale-down-delaypara impedir que os trabalhadores sejam reduzidos imediatamente após a conclusão de sua última tarefa. Essa configuração é útil quando as tarefas chegam de forma intermitente, com intervalos temporários entre elas, permitindo que os funcionários permaneçam disponíveis e evitando ciclos desnecessários de redução e aumento da capacidade. Manter os workers em estado ativo reduz a latência no início das tarefas, minimiza a sobrecarga de inicialização dos workers e diminui o custo do provisionamento repetido de novos workers.
Carga de trabalho contínua e sensível à latência no console do Code Engine
As tarefas surgem de forma imprevisível ao longo do dia — acionadas por ações do usuário, leituras de sensores ou outros eventos em tempo real. Esperar que um novo trabalhador seja inicializado toda vez que uma tarefa chega aumentaria a latência de forma inaceitável. Em vez disso, configure a equipe para manter um grupo de profissionais em prontidão, de modo que as tarefas possam ser iniciadas imediatamente.
Parâmetros relevantes: Número máximo de slots para contêineres, Número mínimo de slots para contêineres, Slots para contêineres sobressalentes, Atraso na redução de escala
- Use
**Número máximo de vagas para contêineres**para definir o número máximo de slots de contêiner que podem ser provisionados. Sua frota se expande até esse limite de simultaneidade, de acordo com a demanda da carga de trabalho. - Utilize o parâmetro “Slots mínimos do contêiner” para garantir que um conjunto básico de workers esteja sempre em execução, mesmo quando não houver tarefas na fila. Use essa opção quando o tráfego puder cair a zero por um período, mas você ainda quiser que ele recomece instantaneamente quando for retomado.
- Use os espaços livres nos contêineres para manter um número de espaços para tarefas disponíveis acima do número atual de tarefas em execução. Quando uma tarefa chega, o processamento começa imediatamente em um trabalhador já em execução, e a frota provisiona mais trabalhadores em segundo plano para repor a capacidade ociosa.
- Use o “Atraso na redução de escala” para evitar que os workers sejam reduzidos imediatamente após a conclusão de sua última tarefa. Essa configuração é útil quando as tarefas chegam de forma intermitente, com intervalos temporários entre elas, permitindo que os funcionários permaneçam disponíveis e evitando ciclos desnecessários de redução e aumento da capacidade. Manter os workers em estado ativo reduz a latência no início das tarefas, minimiza a sobrecarga de inicialização dos workers e diminui o custo do provisionamento repetido de novos workers.