如题,此异常在我们的系统经常出现,虽然重新启动能够正常运行,可是不解决根本问题。
此问题在jboss的社区有个比较好的[url=http://community.jboss.org/wiki/OutOfMemoryExceptionWhenCannotCreateThread]解释[/url],其中提到一个比较好的进程空间公式:
[quote]TotalProcessSpace = .5GB(java overhead) + Heap + (Threads*ThreadStackSize)[/quote]
可见,在进程空间一定的情况下,分配的堆内存越多,其线程栈的空间越少,而在我们的应用中,heap最大是2G,所以tss自然可能就会减少。
目前先只能通过减少tss的大少了,不过要根本解决,还是要解决heap的不断增大(可能有真正的内存泄露)。
多数情况下-Xss改变线程堆栈大少,不过在solaris下边,需要使用-XX:ThreadStackSize
此问题在jboss的社区有个比较好的[url=http://community.jboss.org/wiki/OutOfMemoryExceptionWhenCannotCreateThread]解释[/url],其中提到一个比较好的进程空间公式:
[quote]TotalProcessSpace = .5GB(java overhead) + Heap + (Threads*ThreadStackSize)[/quote]
可见,在进程空间一定的情况下,分配的堆内存越多,其线程栈的空间越少,而在我们的应用中,heap最大是2G,所以tss自然可能就会减少。
目前先只能通过减少tss的大少了,不过要根本解决,还是要解决heap的不断增大(可能有真正的内存泄露)。
多数情况下-Xss改变线程堆栈大少,不过在solaris下边,需要使用-XX:ThreadStackSize