在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