ulimit não refletido para escravo jenkins

3

Problema

Obteve java.io.IOException: Too many open files na indexação de solr por meio de jenkins.

Fiz algumas pesquisas e descobri que temos que definir o limite para a caixa em que estamos executando o trabalho.

Então defina o ulimit em uma caixa linux com spec

Linux x86_64 GNU/Linux

em ambas as modas a seguir

  1. ulimit -n 1000000

  2. /etc/security/limits.conf

    userx soft nofile 1000000
    userx hard nofile 1000000
    

Fornecido

  1. userx é o usuário por meio do qual o job jenkins está sendo executado.
  2. ao fazer ssh na caixa como userx manualmente através do terminal e verifique ulimit -n am recebendo 10000000

Pergunta

Mas ao executar o mesmo ulimit -n através de um job jenkins, obtém apenas 1024, que é o padrão.

Algum conselho seria muito útil?

    
por raksja 08.10.2012 / 22:28

2 respostas

1

Por padrão, o Jenkins estabelece uma conexão SSH com cada nó / escravo como userx.

Eu configurei o ulimit, coloquei o nó offline e o trouxe de volta e achei que o problema estava no lado da sessão.

Então, Disconnect ed o nó inteiro do jenkins e reiniciou a conexão com ele novamente. Ele trouxe de volta uma nova sessão para o userx e obviamente funcionou.

Meu problema é que eu não olhei pelos logs quando coloquei o nó offline.

Lembre-se: colocar o nó Jenkins offline e trazê-lo de volta não abrirá uma nova sessão SSH.

    
por 14.11.2012 / 23:43
4

Certifique-se de que pam_limits.so esteja habilitado para su se o seu script de inicialização do jenkins estiver usando "su" para troca de usuário.

Para o Ubuntu Server, remova o comentário da linha "session required pam_limits.so" no arquivo /etc/pam.d/su

sudo sed -i '/# session\s\+required\s\+pam_limits.so/ s/# *//' /etc/pam.d/su
    
por 14.11.2012 / 06:03