修改linux系统用户最大线程数限制

遇到了坑就记下来,养成一个好习惯,利人利己。

tomcat启动后老是报错:java.lang.OutOfMemoryError: unable to create new native thread

刚开始以为内存不够就增加tomcat内存:

JAVA_OPTS="-server -XX:PermSize=1024M -XX:MaxPermSize=2048m -DentityExpansionLimit=64000"

结果还是报这个错,后来怀疑是权限问题,使用root用户启动tomcat就好了。

经过分析,原来linux用户默认能够创建的最大线程数是1024,所以才会报这个错误。

下面,介绍一下修改linux系统用户最大线程数限制:

centos6.5/linux系统对线程数量有个最大限制,当达到系统限制的最大线程数时使用账号密码ssh到系统时是无法登陆的,会报Write failed: Broken pipe,在root用户下切换到该用户会报  su: 无法设置用户ID: 资源暂时不可用

1.# su - xxx(普通用户)
su: 无法设置用户ID: 资源暂时不可用
2.# ulimit -u
1024
由此可以看出最大线程数为1024
3.修改最大线程数的配置
# vi /etc/security/limits.d/90-nproc.conf
内容如下:
      *          soft    nproc    1024
      root      soft    nproc    unlimited
上面可以看除了root用户外的所有用户均限制为1024,因此通过可以注释此行或者将值改大来解决该问题修改完成后保存退出,这样的修改是立马生效的
经测试成功!

你可能感兴趣的:(linux)