2013-07-05 40 views
1

故障排除JVM堆大小設置說你有一個Windows客戶端,你必須通過javacpl.exe配置JVM具有較大的最大堆大小,如-Xmx1024m。如果正在運行(在web瀏覽器)應用程序仍在抱怨內存大小爲不高於value Y,這是硬編碼到應用程序中的值來檢查,我們假設我們知道這個檢查是功能性的和正確的,可以採取哪些步驟來了解爲什麼相關應用程序沒有「獲取」修改後的堆大小設置?不會傳播到應用

編輯一個可能的原因是如果您將32位JRE設置爲大於2Gb(大約)的內存,因爲它不會處理它。 1024應該傳播,我解決這個的方式是簡單地禁用不同的JRE就是我在系統中找到,直到我發現了正在使用哪一個。

回答

0

您需要驗證其中JVM參數正在啓動期間傳遞到虛擬機。

  • 最簡單的方法就是運行jconsole,這將附加到正在運行的虛擬機,並在那裏你可以看到所有的啓動參數,當前堆大小等JConsole的帶有你的虛擬機分配,你可以在已安裝的JVM_HOME/bin /目錄中找到它。

  • 另一個選項是啓用JVM日誌記錄-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log,jvm.log會再次顯示所有的啓動腳本。

另外,儘量同時設置-Xmx-Xms爲相同的值,這樣,初始堆大小將是你想要的大小。

+0

'jconsole'是JDK的一部分,我忘了提,我們只處理與JRE在這裏和那裏是沒有可能安裝JDK。還有就是你可以在JRE設置中啓用控制檯,但這似乎並沒有給在關於我的問題任何有用的信息。 – pzkpfw

+0

然後,您可以啓用日誌記錄。另外,在linux中,你可以執行'ps -ef | grep ',這也會顯示啓動參數。你也可以在另一臺機器上運行jconsole並遠程連接。 –

+0

不知道你的日誌記錄的意思,但「控制檯」,可以在JRE與一些信息彈出一個窗口,(除其他事項外,該版本)中啓用,但有關參數沒有資料顯示在這裏。 – pzkpfw