談一談JVM內存JAVA_OPTS參數

 

最近幾個月,作的性能測試項目中,發現了一些內存方面的問題,其中有涉及到對JBOSS裏的JAVA_OPTS配置,例如一下所示;

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參數表示的意義。java

-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的三、4分之一
-XX:+UseParNewGC :縮短minor收集的時間
-XX:+UseConcMarkSweepGC :縮短major收集的時間
提示:此選項在Heap Size 比較大並且Major收集時間較長的狀況下使用更合適。架構

穩定的開發架構環境下,建議出一份有實踐、經驗論證的JAVA_OPTS配置,可以很是切合實際的服務於當前開發、測試的軟件流程。jvm

相關文章
相關標籤/搜索