O ponto de verificação está atingindo o tempo limite - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

O ponto de verificação está atingindo o tempo limite

Se seu aplicativo não for otimizado ou provisionado adequadamente, os pontos de verificação podem falhar. Esta seção descreve os sintomas e as etapas de solução de problemas dessa condição.

Sintomas

Se os pontos de verificação falharem em seu aplicativo, o numberOfFailedCheckpoints será maior que zero.

Os pontos de verificação podem falhar devido a falhas diretas, como erros do aplicativo, ou devido a falhas transitórias, como a falta de recursos do aplicativo. Verifique os logs e as métricas do seu aplicativo para ver os seguintes sintomas:

  • Erros no seu código.

  • Erros ao acessar os serviços dependentes do seu aplicativo.

  • Erros ao serializar dados. Se o serializador padrão não conseguir serializar os dados do aplicativo, o aplicativo falhará. Para obter informações sobre como usar um serializador personalizado em seu aplicativo, consulte Tipos de dados e serialização na documentação do Apache Flink.

  • Erros de falta de memória.

  • Picos ou aumentos constantes nas seguintes métricas:

    • heapMemoryUtilization

    • oldGenerationGCTime

    • oldGenerationGCCount

    • lastCheckpointSize

    • lastCheckpointDuration

Para obter mais informações sobre monitoramento de pontos de verificação, consulte Monitoramento de pontos de verificação na documentação do Apache Flink.

Causas e soluções

As mensagens de erro de log do aplicativo mostram a causa das falhas diretas. Falhas transitórias podem ter as seguintes causas:

  • Seu aplicativo tem provisionamento de KPU insuficiente. Para obter informações sobre como aumentar o provisionamento de aplicativos, consulte Escalabilidade.

  • O tamanho do estado do seu aplicativo é muito grande. Você pode monitorar o tamanho do estado do seu aplicativo usando a métrica lastCheckpointSize.

  • Os dados de estado do seu aplicativo são distribuídos de forma desigual entre as chaves. Se seu aplicativo usa o operador KeyBy, verifique se os dados recebidos estão sendo divididos igualmente entre as chaves. Se a maioria dos dados estiver sendo atribuída a uma única chave, isso cria um gargalo que causa falhas.

  • Seu aplicativo está enfrentando contrapressão na memória ou na coleta de resíduos. Monitore heapMemoryUtilization, oldGenerationGCTime e oldGenerationGCCount do seu aplicativo em busca de picos ou valores cada vez maiores.