Todas as coleções
Run
Solucionando erros de “Out of memory” na implantação
Solucionando erros de “Out of memory” na implantação
Saiba mais sobre as possíveis causas de erros de “Out of memory” na implantação de pipeline e como corrigi-los com base no tipo de erro.
R
Escrito por Rafael Ferreira Alves Pimenta
Atualizado há mais de uma semana

Ao implantar um pipeline, alguns dos erros mais comuns que podem ocorrer é a falta de memória, “Out of memory”. Este artigo é principalmente sobre como identificar corretamente o erro e corrigi-lo.

Identificando os erros de Out of memory

O erro “Out of Memory” ocorre quando o pipeline tenta consumir mais memória do que foi alocada durante a implantação.

A primeira etapa para resolver esse problema é encontrar sua causa analisando os logs de execução do pipeline com falha. Pode ter ocorrido uma sobrecarga de memória no pipeline por:

  • fazer consultas em uma grande quantidade de dados sem paginação em uma solicitação HTTP, um banco de dados ou ao baixar e ler um arquivo na memória;

  • executar muitas execuções simultâneas;

  • usando o componente Session Management para armazenar dados e não limpá-lo após a leitura.

Nota: Verifique a data da última implantação. Se for mais antigo que a última versão, execute uma reimplantação para atualizar o pipeline.

Corrigindo os erros

Agora que você já sabe como identificar o que pode estar causando os erros listados anteriormente, saiba como resolver cada problema com uma ação específica.

Atualize o Pipeline Engine para a versão mais recente

Para atualizar Pipeline Engine para uma possível nova versão, a primeira coisa que você precisa fazer é reimplantar o pipeline (reciclagem do pipeline). Para obter mais informações, consulte Reimplantando um pipeline.

Isso pode acontecer porque a Digibee Integration Platform atualiza regularmente sua infraestrutura. Parte desta atualização é reciclar os computadores que oferecem suporte à infraestrutura. Saiba mais sobre reciclagem de pipelines em Alerta nos pipelines em Run.

Grande quantidade de dados sem paginação

Os erros de “Out of memory” também podem ser resolvidos por paginação e/ou uma arquitetura orientada a eventos. A paginação permite que você processe dados em partes, em vez de tudo de uma só vez. Para obter mais informações sobre paginação, consulte Exemplos de paginação.

Implementar uma arquitetura orientada a eventos significa usar o pipeline principal para recuperar dados e criar um loop que passa por esses dados e chama um segundo pipeline que possui um event trigger.

Dessa forma, você divide a carga de memória e cria um fluxo de integração escalável que funciona com conjuntos de dados pequenos e grandes. Para saber mais sobre Arquiteturas orientadas a eventos, consulte este artigo.

Após os ajustes necessários no pipeline, reimplante novamente no ambiente de teste.

Executando muitas execuções simultâneas

Os consumidores compartilham a memória disponível no contêiner. Ou seja, quanto mais consumidores, menos memória disponível para cada um. É recomendável adicionar novas réplicas a esse pipeline para fluir o processo.

Um pipeline SMALL com 2 réplicas tem o dobro do desempenho de processamento e escalabilidade e assim por diante. As réplicas não apenas fornecem mais poder de processamento e escalabilidade, mas também garantem maior disponibilidade - se uma das réplicas falhar, haverá outras para assumir. Para obter mais informações sobre esses conceitos, consulte Pipeline Engine.

Após fazer os ajustes necessários no pipeline, reimplante-o no ambiente de teste. Se o erro persistir, aumente o Tamanho da implantação do pipeline.

Não limpar o componente Session Management

Limpe o componente Session Management para salvar os dados depois de lê-los. Esta é uma boa prática para reduzir o risco de sobrecarga de memória e de falta de memória. Para realizar esta ação, deve-se configurar a função DELETE nas operações do componente.

Assim, após o componente enviar a mensagem como resposta final, é possível limpar os dados armazenados após a leitura com a operação DELETE caso este componente seja a última etapa do pipeline. Para saber mais sobre o componente Session Management, consulte este artigo.

Respondeu à sua pergunta?