我抱怨我的服务器应用程序在高负载时崩溃。
它是一个运行在Tomcat 5
.
我看到了线程转储,并且看到了 OutOfMemory 错误
1TISIGINFO 转储事件“systhrow”(00040000)详细信息
“java/lang/OutOfMemoryError”“无法创建线程:retVal -1073741830,errno 12”>收到 1TIDATETIME 日期:2012/07/17 20:03:17 1TIFILENAME>Javacore 文件名:C:\ServerApplication\Tomcat5\bin\javacore.34545719.4646464.4172.0003.txt
堆信息如下:
Maximum Java heap size : 1500m
Initial Java heap size : 256m
这是初始和最大堆大小的配置(32 位 java)
我还看到有可用的可用堆空间
1STHEAPFREE Bytes of Heap Space Free: 2D19F3C0
1STHEAPALLOC Bytes of Heap Space Allocated: 5DC00000
这是大约 750MB 的可用空间,对吧?
从线程方法分析中,我看到线程的数量是其中的,695
而且49%
我java/lang/Object.wait(Native Method)
看到
这不确定这意味着什么。
0 踩死锁并且是可运行的。 39%
sun/misc/Unsafe.park(Native Method)
NO JAVA STACK 1%
2%
我不确定如何解释这些信息或如何从这里继续检测根本原因。
对此有什么帮助吗?