Como consertar o Jenkins O outfmemoryerror

Como consertar o Jenkins O outfmemoryerror
Um dos erros mais proeminentes ao trabalhar com Jenkins é o erro da Mememória. Este tutorial discute por que esse erro pode aparecer em seus Jenkins e como consertá -lo.

Qual é o OrofMemoryError?

Um "OrofMemoryError" em Java é um erro que ocorre quando a Java Virtual Machine (JVM) não tem memória suficiente disponível para executar uma determinada operação com sucesso.

Pode ser causado por vários motivos, como:

  1. A JVM foi configurada com um pequeno tamanho máximo. Portanto, quando um aplicativo que é executado na JVM precisa de mais tamanho de pilha do que o tamanho máximo, ele falha, levando ao outOfMemoryError.
  2. O aplicativo tem um potencial vazamento de memória, fazendo com que ele mantenha cada vez mais memória ao longo do tempo.

Para resolver um OrofMemoryError, precisamos identificar a causa do erro e tomar uma ação apropriada.

No entanto, isso é muito amplo e pode ser aplicado a qualquer aplicativo que seja executado na JVM. Vamos restringir o que pode causar um OrofMemoryError em Jenkins.

Causas de OrofMemoryError em Jenkins

No contexto do cluster Jenkins, há quatro causas principais deste erro. Eles incluem o seguinte:

  1. Aumentando o tamanho dos dados de Jenkins. À medida que o tamanho dos seus dados em sua instância Jenkins aumenta, o aplicativo também requer um tamanho de pilha maior.
  2. Jenkins pode estar processando temporariamente uma grande quantidade de dados.
  3. Vazamento de memória potencial em Jenkins.
  4. O kernel do sistema host está ficando sem memória virtual.

Diagnosticando a principal causa do OrofMemoryError em Jenkins

Estabelecemos quatro causas potenciais desse tipo de erro em Jenkins. Como reduzimos a principal causa deste erro?

Nesse caso, podemos usar uma ferramenta como o VisualVM, que nos permite visualizar o uso da memória da JVM em nosso sistema.

Esta ferramenta pode identificar a principal causa do OrofMemoryError ao trabalhar com Jenkins.

Navegue até o link a seguir e baixe a versão mais recente da sua máquina da ferramenta Visualvm.

https: // visualvm.Github.io/

Depois de baixado, execute o aplicativo e selecione "Local" para ver o uso da JVM em sua máquina local.

Isso deve mostrar os detalhes do seu sistema, incluindo a memória física disponível, a memória de troca e mais.

Para determinar a causa deste erro, pare Jenkins e inicie -o novamente enquanto monitora o uso da memória da JVM em sua máquina local.

Se o uso da memória maximizar enquanto inicia Jenkins, a causa é um pequeno tamanho de pilha.

No entanto, se o uso da memória aumentar lentamente, isso pode ser um vazamento de memória potencial na sua versão Jenkins.

Se Jenkins usa toda a memória virtual disponível, o kernel do host está ficando sem memória virtual. Você pode consertar isso aumentando a memória virtual disponível ou encerrando as compilações Jenkins em execução.

Como configurar o tamanho da pilha para a JVM

Se você estiver enfrentando o OrofMemoryError devido a um pequeno tamanho de pilha, a solução é apenas para alocar um tamanho de pilha maior.

Podemos configurar o tamanho da pilha inicial e máxima da JVM usando os parâmetros -xms e -xmx.

Nota: Recomenda -se definir o mesmo valor para -xms e xmx para a JVM.

Embora o tamanho de pilha suficiente possa variar dependendo dos recursos do sistema disponível e da carga de trabalho de Jenkins, é recomendável definir o tamanho da pilha como 2 GB (mínimo) e 16 GB (máximo).

Você pode aumentar o tamanho da pilha para Jenkins no Linux. Você pode editar o serviço de inicialização Jenkins com o seguinte comando:

$ sudo systemctl editar jenkins

Você também pode editar o arquivo de serviço manualmente, conforme mostrado no seguinte:

sudo vim/usr/lib/systemd/system/jenkins.serviço

Localize a opção Java_OPTS e adicione as opções -xms e -xmx, conforme mostrado no seguinte:

Environment = "Java_Opts = -djava.awt.sem cabeça = true -xms1g -xmx1g "

Adicionando as opções anteriores Aumente o tamanho da memória da heap para 1 GB. Depois de concluído, você pode reiniciar o serviço Jenkins da seguinte forma:

$ sudo systemctl reinicia jenkins

Você pode aumentar os valores -xms e xmx para Jenkins no Windows, editando o arquivo de configuração.

Por padrão, o arquivo de configuração está localizado em C: \ Arquivos de Programas \ Jenkins \ Jenkins.xml.

Edite o bloco de argumentos do arquivo XML, como mostrado no seguinte:

Uma vez editado, salve o arquivo e reinicie o serviço Jenkins.

Conclusão

Você descobriu a causa do OrofMemoryError ao trabalhar com Jenkins. Você também aprendeu a solucionar as várias causas deste erro. Finalmente, agora você aprendeu os múltiplos métodos de consertá -lo.