线上系统出了这个问题,java命令不好用,整个Java环境奔溃。
之前怀疑是Tomcat出现资源泄漏,后来:
lsof -p PID
ps -eLF | grep PID
检查了线程数和文件数没什么问题。
在ulimit看看系统的设置也没啥问题,机器120G内存,显然不能是内存溢出,当然异常信息也说明是线程不能创建了,猜测:
1、线程多了
2、线程堆栈设置大了(这个不可能,因为根本没用-Xss)
于是ps -eLF各个进程,找到一个进程,居然30000个线程,疯狂吧。
因为机器是6U,120G内存,所以这个问题得持续3天才能发现。
找到进程就好办了,看看源代码,原来是某位仁兄,线程池做局部变量,用完不关,我了个去。。这也太。。。
http://www.blogjava.net/ldd600/archive/2009/09/25/296397.html