libgomp: Thread creation failed: Resource temporarily unavailable

我的服务用的是ImageMagic + JMagick来对图片进行压缩,web容器是tomcat,系统是CentOS6.0。最近发现tomcat有时崩掉了,在catalina.out文件里发现了这行出错信息:


libgomp: Thread creation failed: Resource temporarily unavailable


各种Google后,网上的普遍说法是进程数达到了系统设置的上限,所以不能创建新的进程。CentOS对每个用户创建的最大进程数默认设置是1024个(max user processes = 1024),可以用ulimit -u看到。我用ps命令查看,平时也就200+个进程,高峰时间也绝对不会超过 1024个。


后来,我终于发现了问题的答案。原来,在linux上,线程也是特殊进程,叫Light Weight Process(LWP) ,轻量级进程。如果算上线程,那么在同一时刻,整个系统的进程肯定 多,因为光tomcat就会创建很多线程来处理请求。具体的数可以用 ps -eLf 查看。


问题找到了,解决方案就简单 了。用root权限打开 /etc/security/limits.d/90-nproc.conf , 将 nproc 的的值设置大一些,我暂时设置成了10240,如下:


*          soft    nproc     10240


10240要是不够用,以后再改大点就是了。改完保存,再用ulimit -u确认下, 搞定!

发布了5 篇原创文章 · 获赞 0 · 访问量 2426
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览