线程 WebContainer 已保持活动状态 N 毫秒,此线程可能已挂起

线程 WebContainer 已保持活动状态 N 毫秒,此线程可能已挂起


最近 Websphere 服务报错:

[16-3-3 13:58:13:949 CST] 00000046 ThreadMonitor W   WSVR0605W: 线程“WebContainer : 28”(0000005e)已保持活动状态 772374 毫秒,此线程可能已挂起。在服务器中共有 18 个线程可能处于挂起状态。


线程挂起的的原因还是很多的,大概以下几点,可慢慢尝试排除:

1、程序出现死循环,这个检查一下cpu使用率,要是Cpu使用率到达100%,就有可能这个原因;

2、程序所用之sql问题,长时间无返回导致线程挂起,检查一下数据库服务器是否有这样的session;

3、HeapSize设置问题,太小会导致垃圾回收频繁,导致反应过慢,这个也常常导致Cpu使用率极高,最后搞到java core dump了;调整的话Max HeapSize可以调到1G看看,前提是要看有多少内存了,如果只有2g你就不要乱来了。

4、有些人认为和线程池大小有关,看你的Log如果只有2个线程挂起就导致系统无法连接的话,可以尝试把最大线程提高点看看了,可以到 “应用程序服务器-》server_name-》线程池-》WebContainer ”去调整

5、如果生成了dump文件的话,就可以分析文件,更准确一些;


不过基本上来讲,调整参数可以减缓挂掉的频率,要彻底解决应该从应用程序着手


线程挂起的可能有很多,先用kill -3 杀一个java dump下来看看, 查找里面的 WebContainer : 28 在干什么,为什么会被挂起这么长时间,然后对具体的问题进行诊断。


你可能感兴趣的:(线程,毫秒,N,WebContainer,已保持活动状态,此线程可能已挂起)