ulimit不反映jenkins奴隶

问题

得到了java.io.IOException: Too many open files通过jenkins在solr索引中java.io.IOException: Too many open files过多。

有一些Googlesearch,发现我们必须在我们正在执行工作的地方设置框的限制。

因此,在规范的linux框中设置ulimit

 Linux x86_64 GNU/Linux 

在以下两种方式中

  1. ulimit -n 1000000

  2. 在/etc/security/limits.conf

     userx soft nofile 1000000 userx hard nofile 1000000 

特定

  1. userx是jenkins作业正在执行的用户。
  2. 当通过terminal手动执行ssh作为userx时,检查ulimit -n获得10000000

但是,当通过jenkins作业执行相同的ulimit -n时,只能获得默认的1024。

任何build议将是很有帮助的?

如果jenkins启动脚本使用“su”进行用户切换,请确保为su启用了pam_limits.so。

对于Ubuntu服务器,在/etc/pam.d/su文件中取消注释“session required pam_limits.so”行

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

默认情况下,Jenkinsbuild立与每个Node / Slave的SSH连接作为userx。

我设置ulimit,使节点脱机,并把它带回来,我认为问题是在会议方面。

所以Disconnect jenkins的整个节点,并重新启动与它的连接。 它为userx带来了一个新的会话,它显然工作。

我不好意思,当我离开节点时,没有查看日志。

请记住:将jenkins节点脱机并将其退回将不会启动新的SSH会话。