Linux 下tomcat 出现 java.lang.OutOfMemoryError: unable to create new native thread
问题现象:
Tomcat(8.5.13)部署了SuperMap iServer,并发用户在100左右。系统运行一段时间后,服务崩溃。异常提示

问题分析:
1、看到日志中的提示信息后,认为是系统内存不足导致的。于是在服务器上添加了监控脚本(如下图),每1s记录一次系统内存和tomcat内存。

监控一段时间后,异常再次出现。从日志中并未发现内存异常
2、内存排除后,思路转到是否是由于并发用户数太多,导致的进程数超出呢?
1)查看linux 当前用户的资源限制参数 ulimit -a

2)在上面这些参数中,关注得比较多的是一个进程可打开的最大文件数,即open files。系统允许创建的最大进程数量即是max user processes 这个参数。 我们可以使用 ulimit -u 4096 修改max user processes的值,但是只能在当前终端的这个session里面生效,重新登录后仍然是使用系统默认值。
正确的修改方式是修改/etc/security/limits.d/90-nproc.conf文件中的值。先看一下这个文件包含什么:
$ cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning. * soft nproc 4096
我们只要修改上面文件中的4096这个值,即可。
经过排查,确实是由于服务器当前用户设置的最大进程数设置太小导致的无法创建进程,崩溃。
参考:http://www.linuxidc.com/Linux/2011-03/33121.htm
http://www.cnblogs.com/billyxp/archive/2013/04/03/2998079.html
linux 查看当前进程:http://os.51cto.com/art/201101/244090.htm
http://www.linuxidc.com/Linux/2015-01/111270.htm
Linux 下tomcat 出现 java.lang.OutOfMemoryError: unable to create new native thread的更多相关文章
- 剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣  创建线程数公式(MaxProcessMemory - JVMMemory – ReservedOsMemory)
		
剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 星期一早上到了公司,据称产品环境抛出了最可爱的异常—OutO ...
 - 记一次内存溢出java.lang.OutOfMemoryError: unable to create new native thread
		
一.问题: 春节将至,系统访问量进入高峰期.随之系统出现了异常:java.lang.OutOfMemoryError: unable to create new native thread.在解决这个 ...
 - [java] [error] java.lang.OutOfMemoryError: unable to create new native thread
		
前言 最近公司的服务器出现了oom的报错,经过一番排查,终于找到了原因.写下这篇博客是为了记录下查找的过程,也是为了帮助那些跟我门遇到的情况相同的人可以更快的寻找到答案. 环境 系统:linux(ce ...
 - java.lang.OutOfMemoryError: unable to create new native thread如何解决
		
工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. 一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 ( ...
 - JVM内存越多,能创建的线程越少,越容易发生java.lang.OutOfMemoryError: unable to create new native thread。
		
一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse ...
 - 解决java.lang.OutOfMemoryError: unable to create new native thread问题
		
解决:1.升级JVM到最新的版本 最新版本的JVM一般在内存优化方面做的更好,升级JVM到最新的版本可能会缓解测问题2.从操作系统层面去解决 使用64位操作系统 如果使用32位操作系统遇到unable ...
 - 关于“java.lang.OutOfMemoryError : unable to create new native Thread”的报错问题
		
好吧 我发誓这是postgresql的Mirroring Controller的RT测试的最后一个坑了. 在这个RT测试的最后,要求测试Mirroring Controller功能在长时间运行下的稳定 ...
 - spark java.lang.OutOfMemoryError: unable to create new native thread
		
最近迁移集群,在hadoop-2.8.4 的yarn上跑 spark 程序 报了以下错误 java.lang.OutOfMemoryError: unable to create new native ...
 - spark大批量读取Hbase时出现java.lang.OutOfMemoryError: unable to create new native thread
		
这个问题我去网上搜索了一下,发现了很多的解决方案都是增加的nproc数量,即用户最大线程数的数量,但我修改了并没有解决问题,最终是通过修改hadoop集群的最大线程数解决问题的. 并且网络上的回答多数 ...
 
随机推荐
- javascript知识整理之this
			
js中的this是一个头疼的问题,尤其对于笔者这种初级的菜鸟来讲,下面梳理下this的知识,可以当做是初级进阶也好入门也罢,总归输出的才是自己掌握的: Js中this不是由词法作用域决定的 而是调用时 ...
 - lombok的介绍及使用
			
参考:https://blog.csdn.net/motui/article/details/79012846 介绍 在项目中使用Lombok可以减少很多重复代码的书写.比如说getter/sette ...
 - CentOS7 linux 中提示   bash: ls: 未找到命令...
			
记录一次CentOS7里执行ls命令失败的问题 执行ls命令时报找不到命令,原因是环境变量PATH被修改, 解决办法: 执行 export PATH=/bin:/usr/bin:$PATH 然后 ...
 - HoloLens开发手记 - 语音输入 Voice input
			
语音是HoloLens三大重要输入形式之一.它允许你直接通过语言控制全息图像,而不用借助手势.你只要凝视全息图像然后说出语音命令即可.语音输入是自然的交互方式,它能够很好的改善复杂的交互,因为通过一条 ...
 - 关于vue中钩子函数非常好的博客
			
http://www.cnblogs.com/caimuqing/p/6728568.html
 - 《Kubernetes权威指南》——Kubelet运行机制与安全机制
			
1 Kubelet运行机制 Kubenetes集群中的每个Node节点都会启动一个Kubelet服务进程用于处理Master下发到该节点的任务,管理Pod及其中的容器 Kubelet进程在API Se ...
 - ida 调试 android fork
			
在使用ida 调试android native代码时经常会碰见fork子进程的情况出现,而运行一个 android_server只能对一个进程进行调试或者attach,而ida 默认端口是23946, ...
 - python3爬虫——下载unsplash美图到本地
			
最近发现一个网站www.unsplash.com ( 没有广告费哈,纯粹觉得不错 ),网页做得很美观,上面也都是一些免费的摄影照片,觉得很好看,就决定利用蹩脚的技能写个爬虫下载图片. 先随意感受一下这 ...
 - Linux下rsync daemon模式下的错误汇总
			
一.前言:最近学习服务环境搭建,遇到了许多大大小小的问题,不过还好,经过我的一通努力终于都解决了,所以分享出来给自己留个纪念,同时也希望能帮助学习中的朋友. 二.环境:两台服务器环境相同 1 [roo ...
 - SpringBoot---基本配置
			
1.首先在pom.xml添加对HTML的相关依赖 /** * pom.xml文件 */ <dependencies> <dependency> <groupId>o ...