在Solaris x86上的32位jvm上运行Java EE应用程序时,出现OutOfMemoryError:无法创建本机线程(或类似的东西)。
这是因为根据我的理解,jvm没有足够的内存用于新线程的堆栈。如何监视内存的Java线程堆栈
我使用JConsole和VisualVM 1.3来监视应用程序,但我不知道在这些工具中调用“stackmemory”是什么。在VisualVM中,我可以监视heappace和permgen空间,而JConsole显示更多的内存区域。这些内存区域是否被预留用于堆栈内存?我知道这不是堆空间,但是如何处理permgen或non-heap(如JConsole中所述)
机器是否有足够的交换? – 2010-08-19 09:24:57
$>交换-s 合计:1609736k字节分配+ 760644k保留= 2370380k使用,57741028k可用。 我已经将heapsize设置为3072m,因此jvm应该可以在理论上使用另一个1024mb的非堆空间(实际上我猜测的数量少一些) – Ola 2010-08-19 09:56:23