O Realtime Compute for Apache Flink oferece dois modos de ajuste automático: Autopilot e scheduled tuning. O objetivo é reduzir o gerenciamento manual de recursos. No ajuste manual, você precisa alocar recursos antes de iniciar um job, reajustar essas alocações durante a execução para maximizar a utilização e reagir a picos de backpressure ou latência. Com os modos automáticos, o sistema toma essas decisões por você, mantendo a eficiência dos jobs sem necessidade de intervenção constante.
Escolha um modo de ajuste
|
Modo de ajuste |
Quando usar |
Como funciona |
Referências |
|
Autopilot |
As cargas de trabalho são variáveis ou imprevisíveis e você deseja que o sistema responda automaticamente a mudanças de CPU, memória ou latência. |
O sistema monitora continuamente as métricas em tempo real e ajusta o paralelismo, a CPU e a memória sem intervenção manual. |
|
|
Scheduled tuning |
O tráfego segue um padrão previsível (por exemplo, picos diários e horários de baixa demanda) e você pode planejar as mudanças de recursos com antecedência. |
defina planos de recursos baseados em tempo. O sistema os aplica nos horários de acionamento configurados. |
Os dois modos são mutuamente exclusivos. Desative o modo ativo antes de alternar para o outro.
Limitações e considerações
Checkpointing não alinhado: Não modifique o paralelismo do job quando o unaligned checkpointing está ativado.
Clusters de sessão: O Autopilot não tem suporte para jobs executados em session clusters.
Jobs desenvolvidos em YAML: configure o ajuste automático para jobs em YAML apenas no VVR 11.8 e versões posteriores.
Paralelismo codificado (hardcoded): Não codifique o paralelismo diretamente em jobs Flink SQL com conector personalizado ou em jobs da API DataStream. Valores codificados substituem as configurações de ajuste automático.
Limite de planos de recursos: crie no máximo 20 planos de recursos.
Planos mutuamente exclusivos: Apenas um plano de scheduled tuning pode ser aplicado por vez. Interrompa o plano ativo antes de aplicar outro.
Reinicialização de jobs: O ajuste automático pode reiniciar jobs, interrompendo momentaneamente o consumo de dados.
No Ververica Runtime (VVR) 8.0.1 e versões posteriores, o sistema tenta primeiro atualize a configuração dinamicamente antes de reiniciar o deployment. As atualizações dinâmicas reduzem o tempo de inatividade em 30% a 98% em comparação com uma reinicialização completa. Atualmente, apenas atualize o paralelismo do job dinamicamente. Para mais detalhes, consulte
atualize configurações dinâmicas
.
Comportamento na modificação de recursos: Quando o ajuste automático aplica alterações, o sistema compara as configurações anteriores e posteriores para determinar o método de atualização. Se houver mudanças de CPU ou memória, o deployment é reiniciado. Se apenas o paralelismo mudar, atualize a configuração dinamicamente para minimizar o tempo de inatividade.
Gargalos de desempenho: O Autopilot não resolve todos os gargalos de desempenho de streaming. Ele funciona melhor quando o tráfego muda de forma suave, não há skew de dados e o throughput do operador escala linearmente com o paralelismo. Fora dessas condições, visualize:
Falhas nas alterações de paralelismo ou reinicializações repetidas do job sem atingir um estado estável.
Desempenho degradado em funções escalares definidas pelo usuário (UDFs), funções de agregação definidas pelo usuário (UDAFs) ou funções com valor de tabela definidas pelo usuário (UDTFs).
Problemas em sistemas externos: O Autopilot não detecta problemas em sistemas externos. Se um sistema externo falhar ou responder lentamente, o Autopilot pode aumentar o paralelismo do job, adicionando carga a um sistema que já está sobrecarregado. Os problemas comuns em sistemas externos incluem:
Partições insuficientes no DataHub ou baixo throughput no ApsaraMQ for RocketMQ.
Baixo desempenho do operador de sink.
Deadlocks em bancos de dados do ApsaraDB RDS.
ative e configure o Autopilot
Estratégias do Autopilot
Selecione uma estratégia com base nas características da sua carga de trabalho:
|
Estratégia |
Mais indicada para |
Como funciona |
|
Adaptive strategy (recomendada) |
Cargas de trabalho variáveis, alta sensibilidade à latência, skew de dados ou distribuição de carga desigual. |
Ajusta continuamente a configuração de recursos com base em métricas em tempo real, respondendo rapidamente às mudanças de demanda. |
|
Stable strategy |
Cargas de trabalho estáveis e previsíveis, em que reinicializações são custosas e a convergência para um plano fixo é preferível. |
Direciona para um plano de recursos fixo ou agendado durante todo o ciclo de execução do job. Após a convergência das configurações, o sistema gera um plano de recursos que você pode salve e reutilize. Reinicializações de job ou atualizações a quente (hot updates) reiniciam o processo de convergência. |
Procedimento
-
acesse a página de configuração do Autopilot.
Faça login no Realtime Compute for Apache Flink console.
Encontre o workspace desejado e clique em Console na coluna Actions.
No painel de navegação à esquerda, escolha O&M > Deployments e clique em nome do deployment desejado.
Na aba Resources, selecione a subaba Autopilot Mode.
Ative o Autopilot. A mensagem Autopilot Mode Applying aparece abaixo da aba Resources. Para desativar o Autopilot, desligue a chave ou clique em Turn Off Autopilot.
-
Na seção Configurations, clique em Edit, selecione uma estratégia e configure os parâmetros.
(Recomendado) Estratégia adaptativa
Parâmetros da estratégia adaptativa
Parâmetro Descrição Max CPU Número máximo de núcleos de CPU que o job pode usar. Padrão: 64 núcleos. Max Memory Memória máxima que o job pode usar. Padrão: 256 GiB. Max Parallelism Paralelismo máximo do job. Padrão: 1.024. Quando integrado ao ApsaraMQ for Kafka, Message Queue, Simple Log Service ou outro service de fila de mensagens, o sistema limita automaticamente esse valor à contagem de partições se o valor configurado for superior. Min Parallelism Paralelismo mínimo do job. Padrão: 1. Scale Up Rules Condições que acionam um scale-up. O atendimento de qualquer condição individual aciona a ação. Condições configuráveis: < br > - Atrasos permanecem acima de um limiar por uma duração especificada. < br > - A taxa média de ocupação de um operador permanece acima de um limiar por uma duração especificada. < br > - A utilização de memória de um TaskManager permanece acima de um limiar por uma duração especificada. < br > - Ocorre um erro de falta de memória (OOM). < br > - O tempo que o TaskManager ou JobManager gasta em garbage collection por segundo permanece acima de um limiar por uma duração especificada. < br > Notadefina os limiares com base em dados históricos ou comece com valores mais flexíveis e ajuste-os ao longo do tempo. As porcentagens de limiar variam de 0 a 100%. Definir uma duração adequada ajuda a filtrar flutuações breves e evita scale-ups causados por picos transitórios. O OOM é apenas ativado ou desativado, não exigindo limiar.
Scale Down Rules Condições que acionam um scale-down. O atendimento de qualquer condição individual aciona a ação. Condições configuráveis: <br>- A taxa média de ocupação de um operador permanece abaixo de um limiar por uma duração especificada. <br>- A utilização de memória de um TaskManager permanece abaixo de um limiar por uma duração especificada. Advanced Rules Atualmente em fase de testes e não disponível publicamente. Entre em contato conosco e ative as regras avançadas. Estratégia estável
Parâmetros da estratégia estável
Parâmetro
Descrição
Cooldown Minutes
Intervalo mínimo entre reinicializações acionadas pelo Autopilot. Padrão: 10 minutos.
Max CPU
Número máximo de núcleos de CPU que o job pode usar. Padrão: 16 núcleos.
Max Memory
Memória máxima que o job pode usar. Padrão: 64 GiB.
Max Delay
Atraso máximo permitido na source. Padrão: 1 minuto.
More Configurations
Parâmetros avançados (consulte a tabela abaixo).
Estratégia estável: parâmetros avançados
Parâmetro
Descrição
Padrão
mem.scale-down.intervalIntervalo mínimo entre scale-downs de memória. Quando a utilização de memória permanece abaixo do limiar definido dentro desta janela, o sistema ajusta ou recomenda uma redução de memória.
4 horas
parallelism.scale.maxParalelismo máximo.
-1significa ilimitado. Quando integrado ao ApsaraMQ for Kafka, Message Queue, Simple Log Service ou outro service de fila de mensagens, o sistema limita automaticamente esse valor à contagem de partições.-1
parallelism.scale.minParalelismo mínimo.
1
delay-detector.scale-up.thresholdAtraso máximo permitido na source antes de acionar um scale-up. Se a capacidade de processamento insuficiente fizer o atraso atingir esse valor, o sistema aumenta o paralelismo ou desacopla operadores (unchains) para melhorar o throughput.
1 minuto
slot-usage-detector.scale-up.thresholdLimiar superior da taxa de utilização de recursos de computação/IO de operadores que não são source. O Flink aumenta o paralelismo quando a proporção de tempo de processamento de um operador permanece acima desse valor.
0.8
slot-usage-detector.scale-down.thresholdLimiar inferior da taxa de utilização de recursos de computação/IO de operadores que não são source. O Flink reduz o paralelismo quando a proporção de tempo de processamento de um operador permanece abaixo desse valor.
0.2
slot-usage-detector.scale-up.sample-intervalIntervalo no qual o Flink amostra as taxas de ocupação de operadores que não são source e compara com os limiares de scale-up e scale-down.
3 minutos
resources.memory-scale-up.maxTamanho máximo de memória do TaskManager e do JobManager. Quando um TaskManager e o JobManager executam o Autopilot ou aumentam o paralelismo, o limite superior de memória é de 16 GiB.
16 GiB
clique em Save.
salve e aplique um plano de recursos fixo:
Quando um job que usa a stable strategy converge, o sistema gera um plano de recursos que você pode salvar e aplicar. Dois tipos de plano estão disponíveis:
|
Tipo de plano |
Descrição |
O que acontece ao aplicar |
|
Plano de recursos fixo |
Uma única configuração de recursos sem dimensão de tempo. |
A configuração de recursos do deployment é atualizada com os valores salvos e aplicada na próxima inicialização. |
|
Scheduled plan (preview público) |
Múltiplas configurações de recursos, cada uma vinculada a um período de tempo. |
O modo de ajuste muda automaticamente para scheduled tuning. Os recursos não são ajustados após o job executar de forma estável. |
salve e aplique um plano de recursos fixo:
No banner Autopilot Mode Applying, clique em Details. No painel que aparece, defina Recommended Plan como Specified resource e clique em Save. Na caixa de diálogo de confirmação, clique em Confirm.
Para salvar e aplicar um plano agendado:
Consulte salve e aplique um plano agendado.
configure e aplique um plano de scheduled tuning
crie e aplique um plano agendado
-
acesse a página de configuração do plano agendado.
Faça login no Realtime Compute for Apache Flink console.
Encontre o workspace desejado e clique em Console na coluna Actions.
No painel de navegação à esquerda, escolha O&M > Deployments e clique em nome do deployment desejado.
Na aba Resources, selecione a subaba Scheduled Mode.
clique em New Plan.
-
Na seção Resources do painel New Plan, configure o plano:
Trigger Period: Selecione No Repeat, Every Day, Every Week ou Every Month. Para períodos semanais ou mensais, especifique as datas em que o plano entra em vigor.
Trigger Time Defina o horário em que o plano entra em vigor.
Mode: Selecione Basic ou Expert. Para mais detalhes, consulte configure recursos do job.
Outros parâmetros: Consulte Runtime parameter configuration.
-
(Opcional) clique em New Resource Setting Period para adicionar mais períodos de tempo ao plano e configurar seus horários de acionamento e configurações de recursos.
ImportanteO intervalo entre os horários de acionamento deve ser superior a 30 minutos.
Na seção Resource Plans da subaba Scheduled Mode, encontre o plano e clique em Apply na coluna Actions.
salve e aplique um plano agendado
Quando um job que usa a stable strategy do Autopilot converge, o sistema gera automaticamente um plano agendado com base no uso de recursos observado. visualize, modifique, salve e aplique esse plano.
-
acesse a página de configuração do Autopilot.
Faça login no Realtime Compute for Apache Flink console.
Encontre o workspace desejado e clique em Console na coluna Actions.
No painel de navegação à esquerda, escolha O&M > Deployments e clique em nome do deployment desejado.
clique em aba Resources.
No banner Autopilot Mode Applying, clique em Details. No painel que aparece, defina Recommended Plan como Scheduled plan.
-
configure o plano:
Ação
Descrição
Observações
Especifique Max Change Count
Defina o número máximo de alterações de recursos aplicadas ao plano agendado.
Intervalo permitido: 2 a 5.
clique em Merge time periods
Mescle períodos de tempo com base na contagem máxima de alterações especificada.
Aumente ou reduza a escala dos recursos antes de mesclar para atender aos seus requisitos de negócios.
Revise e modifique as configurações de recursos mescladas. Para mais detalhes, consulte configure recursos do job.
clique em Save no canto inferior esquerdo.
Na caixa de diálogo, insira um Scheduled plan name ou selecione Apply this plan immediately e clique em Confirm. Após a aplicação do plano, o modo de ajuste muda automaticamente para scheduled tuning. O Autopilot para de ajustar os recursos assim que o job executa de forma estável.
Exemplo
Este exemplo utiliza um padrão de tráfego diário: horários de pico das 09:00:00 às 19:00:00 com 30 unidades de computação (CUs) e horários de baixa demanda das 19:00:00 às 09:00:00 do dia seguinte com 10 CUs. A configuração de scheduled tuning é a seguinte.
O painel de configuração de scheduled tuning Morning Peak and Evening Peak contém duas regras com os mesmos parâmetros de recursos: Job Manager CPU 1 núcleo, Memória 4 GiB; Task Manager CPU 1 núcleo, Memória 4 GiB; Slot Count por TaskManager é 4; System Checkpoint Interval 0,1 s; Minimum Interval entre dois checkpoints do sistema 0,1 s; State Data Expiration Time 0 h; Flink Restart Strategy é failure-rate.
Próximos passos
Utilize o recurso de diagnóstico inteligente de deployments para monitorar a integridade do deployment e garantir a estabilidade do negócio. Para mais detalhes, consulte Perform intelligent job diagnostics.
Melhore o desempenho do deployment de Flink SQL por meio de configurações de deployment e otimização de consultas. Para mais detalhes, consulte Optimize Flink SQL.