我需要增加預設的java堆大小才能得到OpenNMS 連結服務運行順利,幸運的是,即使在伺服器上的負載達到最大時,我在任何給定時間都有 4/5 的已安裝記憶體可用。 java仍然沒有達到它的性能。因此我需要增加預設的 java 堆大小。
誰能告訴我該怎麼做?
我使用的是 Ubuntu 12.04 lts,安裝的總記憶體為 16 GB,其中通常使用 2GB 到 4GB。
我已經檢查過以下問題,但它們沒有幫助我解決我的問題。
請隨時編輯或評論所需的任何其他詳細資訊。
答案1
您可以使用java -Xmx4096m
來將堆設定為 4 GB。
然後你可以export _JAVA_OPTIONS=-Xmx4096m
透過它們的(.bashrc、.zshrc)檔案加入你的 shell 中。
答案2
嗯...Java 效能不一定與堆疊大小相關。透過增加最大大小,您確實可以防止記憶體不足錯誤的一個來源(還有其他原因會產生此 java 錯誤)。
如果將預分配堆設為最大大小,則唯一的效率是透過減少呼叫次數來增加堆疊記憶體大小。
嗯...我想它也可能會減慢垃圾收集器的速度,因為它不必像較小的堆大小那樣快速反應。
上述兩種堆大小調整都可以在 java 命令列上進行。