GC overhead limit exceeded
GC overhead limit exceeded é um erro ocasionado devido a utilização de muitos recursos durante a execução de um Job.
Diagnóstico:
Esse erro acontece devido ao job estar utilizando mais memória que pode ser acessada por padrão. Isso pode acontecer independentemente da quantidade de memória alocada para o JobServer, ou seja, pode-se ter 32gb de memória para o job, mas o erro ainda poderá acontecer.
O erro é causado quando o job utiliza 98% ou mais do espaço do HEAP alocado por padrão no JobServer, geralmente definido quando o JobServer, TAC ou outro módulo Talend é iniciado usando a flag “-XX:MaxHeapSpace”.
Solução:
Para que esse problema seja resolvido, podemos alterar o seu tipo de memória para dinâmica, assim o job usará a quantidade necessária para que o mesmo execute. Para isso basta adicionarmos a seguinte flag:
-XX:-UseGCOverheadLimit
Quando o job é executado, essa flag ignorará o limite de cache da JVM e usará a quantidade de memória necessária.
Como adicionar uma flag JVM para a execução de um Job?
Abra o Studio e naveque nesse caminho > Run Tab na barra de designer view, advanced e marque a caixinha “Use specific JVM arguments“.
Após isso clique em “New” e cole o argumento “-XX:-UseGCOverheadLimit“.
Para saber mais sobre JVM arguments, utilização de memória e otimização do job, acesse esse link.
Agora sem mais erros, basta trabalhar com os seus dados sempre mantendo a confiabilidade dos mesmos. Para saber mais sobre os princípios da confiabilidade dos dados, clique aqui.