談一談JVM記憶體JAVA_OPTS參數

來源:互聯網
上載者:User

最近幾個月,做的效能測試項目中,發現了一些記憶體方面的問題,其中有涉及到對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參數表示的意義。

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

穩定的開發架構環境下,建議出一份有實踐、經驗論證的JAVA_OPTS配置,能夠非常切合實際的服務於當前開發、測試的軟體流程。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.