今天遇到一个问题,就是JENKINS在进行两个前端应用打包时会出现崩溃。

查看tomcat-jenkins/bin/hs_err_pid27127.log发现:

Out of Memory Error (os_linux.cpp:2640), pid=27127, tid=0x00007f9de215f700

提示说可能达到了32位的进程数上限,确认了系统和JAVA均为64位,内存和SWAP空间还有。

于是查看当前的打开文件数:lsof |wc -l 发现为:236358

lsof -u root |wc -l 为 6534,

ps -xH|wc -l 得知线程数为1274,

进程数ps -ef|wc -l为181,

以后再监控下进程文件数lsof -i :8080,lsof -p PID|wc -l

ulimit -u 查看最大进程数为63469,应该足够使用了。

ulimit -n 查看用户打开文件数限制为10001,猜测应该是设置小了。

 于是修改"/etc/security/limits.conf",设置root的默认打开数:

root soft nofile 278528
root hard nofile 278528

发现并没有立即全局生效,于是修改了/etc/profile

在文件最后加上了:ulimit -n 278528,ok,暂时解决了崩溃的问题。

通过端口查进程:lsof -i :8080,

通过PID查线程数:lsof -p PID|wc -l

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐