1、今天线上的环境昨天晚上上线后好好的突然出现异常
java.lang.OutOfMemoryError: unable to create new native thread

2、排查问题(很奇怪的情况,因为我的模块并没有不停创建线程的情况),重启进程,还是一样的问题出现,只要发数据就会出现。
3、可能是别人的模块出现了内存异常,线程异常问题,而我的模块线程池用的是JVM的公共线程并没有自己去创建维护。
4、查看系统进程与线程上线
ulimit -a
5、top
6、top -h

7、我这里是没办法重现了,因为别的同事也在排错,发现是他负责的模块不停的在创建线程,重启后就好了
7.2
1、top -H
手册中说:-H : Threads toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。
2、ps xH
手册中说:H Show threads as if they were processes
这样可以查看所有存在的线程。
8、参考https://www.cnblogs.com/EasonJim/p/8098217.html
本文记录了一次线上环境中出现的java.lang.OutOfMemoryError异常排查过程,通过使用top、ps等命令定位到问题模块,发现是由于同事负责的模块持续创建线程导致的资源耗尽。
490

被折叠的 条评论
为什么被折叠?



