2012-07-09 142 views
7

根據JVM 6文檔,服務器級機器默認接收的初始堆大小爲1/4 RAM或1GB。考慮到我們的Solaris 64位服務器具有64 GB,初始堆大小默認爲256MB。因此,我需要使用4GB的XMX參數手動設置堆大小。雖然,當我添加「-Xmx4096M」時,Tomcat無法啓動。這裏是錯誤信息:如何設置一個非常大的JVM堆大小?

Invalid maximum heap size: -Xmx4096M 
The specified size exceeds the maximum representable size. 
Could not create the Java virtual machine. 

什麼應該是我的命令行參數,讓我的堆長到4GB?

+0

您使用的是什麼操作系統?一些較舊的操作系統不允許進程超過2 Gig。 – John 2012-07-09 15:26:44

+0

Solaris(我剛更新了上面的問題) – Pomario 2012-07-09 15:27:41

+1

你是在運行一個64位的jvm嗎? – 2012-07-09 15:28:51

回答

7

感謝您的所有意見,夥計!雖然,我的java -version的輸出提到了mixed mode,這意味着它是64位。真正的解決方案是增加-d64以強制它以64位運行,因此分配4GB。

+7

事實上它顯示「混合」模式與您擁有32位或64位JVM的事實無關。這隻意味着您的JVM將「編譯」和「解釋」兩種執行模式混合在一起。 – 2012-07-09 16:11:42

4

我的解決方案基於以下問題的評論:您使用的是32位JVM,因此它的地址不能超過4GB(不含)。嘗試安裝64位版本

4

根據java -version的輸出,安裝了32位JVM。如果它是一個64位,你應該得到像Java HotSpot(TM) 64-Bit Server VM

嘗試安裝64位JVM,它將解決您的問題。

0

使用-Xmx1024M -XX:MaxPermSize參數= 256M

+0

使用代碼格式和一個完整的示例命令行,將使這個答案好得多。 – jpaugh 2016-07-23 02:20:25