JVM記憶體JAVA_OPTS

獵手家園發表於2021-02-06

示例程式碼:

JAVA_OPTS=-server -Xms1536m -Xmx1536m -XX:NewSize=320m -XX:MaxNewSize=320m -XX:PermSize=96m -XX:MaxPermSize=256m -Xmn500m -XX:MaxTenuringThreshold=5

JAVA_OPTS並不是一成不變的,不同的應用在不同的軟硬體環境下,要想充分發揮應用的效能,這些引數裡邊的設定是非常有技巧。


JAVA_OPTS參數列示的意義:

-server: 一定要作為第一個引數,在多個CPU時效能佳。
-Xms:初始Heap大小,使用的最小記憶體,cpu效能高時此值應設的大一些。
-Xmx:java heap最大值,使用的最大記憶體。
#上面兩個值是分配JVM的最小和最大記憶體,取決於硬體實體記憶體的大小,建議均設為實體記憶體的一半。-XX:PermSize:設定記憶體的永久儲存區域
-XX:MaxPermSize: 設定最大記憶體的永久儲存區域
-XX:MaxNewSize:
-Xss 15120 這使得JBoss每增加一個執行緒(thread)就會立即消耗15M記憶體,而最佳值應該是128K,預設值好像是512k。
+XX:AggressiveHeap 會使得 Xms沒有意義。這個引數讓jvm忽略Xmx引數,瘋狂地吃完一個G實體記憶體,再吃盡一個G的swap。
-Xss:每個執行緒的Stack大小。
-verbose:gc 現實垃圾收集資訊。
-Xloggc:gc.log 指定垃圾收集日誌檔案。
-Xmn:young generation的heap大小,一般設定為Xmx的三、四分之一。
-XX:+UseParNewGC :縮短minor收集的時間。
-XX:+UseConcMarkSweepGC :縮短major收集的時間。

提示:此選項在Heap Size 比較大而且Major收集時間較長的情況下使用更合適。

相關文章