`
RamosLi
  • 浏览: 119124 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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确认下, 搞定!

0
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics