Customização Limit no Jenkinsfile

Warning

Erro killed - erro por falta de recurso

  • Quando uma build falhar com o erro “killed” quer dizer que o limite de recursos configurados na jenkinsfile são insuficientes, e precisam ser alterados.

  • Observe também que o exit code 137 é status diretamente relacionado à falta de memória.

../../_images/erro_killed_recurso_137.png

Customização

Possibilidade de customização de consumo de recursos para realização de build, onde:

ResourcesMemoryRequest

  • Aguardará o servidor possuir quantidade livre de memória solicitada para iniciar o build.

  • Por default e sugerido : 3Gi.

ResourcesMemoryLimit

  • Responsável por limitar o consumo, caso ultrapasse o valor determinado o build terminará imediatamente, com o erro killed.

  • Por default e sugerido : 6Gi.

Warning

  • Os valores do resourcesMemoryRequest e resourcesMemoryLimit devem possuir um embasamento pois impacta diretamente nos recursos do servidor e consequentemente em outros build e aplicações.

  • É ideal utilizar sempre um valor mínimo de recurso para iniciar o build.

  • É ideal utilizar sempre um valor aceitável de limite visando não ultrapassar limites normais de consumo de recursos.

Customizando jenkinsfile

Para alterar os valores padrões adicione as linhas na jenkinsfile:

Adicionar as definição de variáveis:

  • def resourcesMemoryRequest = "" // OPCIONAL - default "3Gi"

  • def resourcesMemoryLimit = "" // OPCIONAL - default "6Gi"

Adicionar no objeto data:

  • "resourcesMemoryRequest": "${resourcesMemoryRequest}"

  • "resourcesMemoryLimit": "${resourcesMemoryLimit}"

Recomendação de valores

Recomendamos que utilize sempre valores mínimos e siga a progressão da tabela para definição de resourcesMemoryRequest e resourcesMemoryLimit , onde cada projeto terá um valor empírico.

resourcesMemoryRequest

resourcesMemoryLimit

“3Gi” default

“6Gi” default

“4Gi”

“8Gi”

“5Gi”

“10Gi”

“6Gi”

“12Gi”

Warning

  • Para os projetos que fazem uso da funcionalidade, é necessário consultar a equipe de DevOps para definir os valores a serem utilizados caso fujam dos valores “normais” apresentados na tabela de recomendação.

  • Valores arbitrários poderão causar inconsistências durante builds no Jenkins para todos os projetos.