java.lang.OutOfMemoryError : unable to create new native Thread 与 Too many open files 解决方法

准备在之前的服务器上部署另外一个应用程序,该程序部署好后已启动就报
java.lang.OutOfMemoryError : unable to create new native Thread 

ulimit -a 

 max user processes              (-u) 1024,这也太小了
32g内存 8核cpu, 。设置的太小了简直浪费资源。后面修改到 409600 就能 正常启动了

另外如果   open files(-n)设置太小默认1024 会导致  java.net.SocketException: Too many open files

文件系统及程序的限制关系: ulimit 
ulimit     限制用户的某些系统资源 
                包括可以开启的档案数量 
                可以使用的 CPU 时间 
                可以使用的内存总量等。 

[root@www ~]# ulimit [-acdfHlmnpsStvw] [size] 
选项与参数: 
-H :  hard limit ,严格的设定,必定不能超过这个设定的数值 
-S :  soft limit ,警告的设定,可以超过这个设定值,但是若超过则有警告讯息 
-a :  后面不接任何选项与参数,可列出所有的限制额度 
-c :  当某些程序发生错误时,系统可能会将该程序在内存中的信息写成档案,这种档案就被称为核心档案(core file)。 
-f :  此 shell 可以建立的最大档案容量(一般可能设定为 2GB)单位为 Kbytes 
-d :  程序可使用的最大断裂内存(segment)容量 
-l :  可用于锁定 (lock) 的内存量 
-m :  设置可以使用的常驻内存的最大值.单位:kbytes 
-n :  设置内核可以同时打开的文件描述符的最大值.单位:n 
-p :  设置管道缓冲区的最大值.单位:kbytes 
-s :  设置堆栈的最大值.单位:kbytes 
-v :  设置虚拟内存的最大值.单位:kbytes 
-t :  可使用的最大 CPU 时间 (单位为秒) 
-u :  单一用户可以使用的最大程序(process)数量 

一般简单设置:ulimit -SHn 65535 

让其永久生效: 
[root@www ~]# vi /etc/security/limits.conf 
* soft noproc 65535 
* hard noproc 65535 
* soft nofile 409600 
* hard nofile 409600 

*             代表针对所有用户 
noproc     是代表最大进程数 
nofile     是代表最大文件打开数 

生产环境的案例: 
[root@www ~]# vi /etc/security/limits.conf 
# End of file 
*           soft  core   unlimit 
*           hard  core   unlimit 
*           soft  fsize  unlimited 
*           hard  fsize  unlimited 
*           soft  data   unlimited 
*           hard  data   unlimited 
*           soft  nproc  65535 
*           hard  nproc  63535 
*           soft  stack  unlimited 
*           hard  stack  unlimited 
*           soft  nofile  409600 
*           hard  nofile  409600 

参考文档:

http://docs.mongodb.org/manual/reference/ulimit/

https://access.redhat.com/site/documentation/en-US/Red_Hat_Directory_Server/8.2/html/Performance_Tuning_Guide/system-tuning.html

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/chap-Oracle_9i_and_10g_Tuning_Guide-Setting_Shell_Limits_for_the_Oracle_User.html

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/sect-Oracle_9i_and_10g_Tuning_Guide-Setting_Shell_Limits_for_the_Oracle_User-Limiting_Maximum_Number_of_Processes_Available_for_the_Oracle_User.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值