天天看點

JDK1.8環境16G記憶體tomcatJVM參數設定

JDK1.8的版本

JDK1.8環境16G記憶體tomcatJVM參數設定

機器配置:

JDK1.8環境16G記憶體tomcatJVM參數設定

JVM參數設定

JAVA_OPTS='-server -Xmn1g -Xms9g -Xmx9g -Xss512K -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/timerbackend_gc.hprof -XX:+ParallelRefProcEnabled  -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g'      

設定之後,GC的回收情況

JDK1.8環境16G記憶體tomcatJVM參數設定

參數詳解:

-server: 選擇使用 Java HotSpot Server VM​​3​​。特點是啟動速度比較慢,但運作時性能和記憶體管理效率很高,适用于生産環境。在具有 64 位能力的 jdk 環境下将預設啟用該模式,而忽略-server 參數。

-Xmn: 設定年輕代的初始和最大大小。建議将年輕代的規模保持在整體堆大小的一半到四分之一之間.

-Xms: 指定 jvm 堆的初始大小,預設為實體記憶體的 1/64,最小為 1M;可以指定機關,比如 k、m,若不指定,則預設為位元組。如果未設定此選項,則初始大小将設定為為老年代和年輕代分的大小之和。可以使用選項 ​

​-Xmn-XX:NewSize​

​​ 設定年輕代的堆的初始大小。注意,​

​-Xms-XX:InitalHeapSize​

​​ 選項還可用于設定初始堆大小。如果它出現在指令行之後,則初始堆大小将設定為用 ​

​-Xms-XX:InitalHeapSize​

​ 指定的值。

-Xmx: 指定 jvm 堆的最大值,預設為實體記憶體的 1/4 或者 1G,最小為 2M;機關與 - Xms 一緻。對于伺服器部署,-Xms 和 - Xmx 通常設定為相同的值。該選項等效于 ​

​-Xmx-XX:MaxHeapSize​

​.

-Xss: 設定單個線程棧的大小,一般預設為 512k。

-XX:+UseConcMarkSweepGC:使用 ParNew + CMS + Serial Old 的收集器組合進行記憶體回收,Serial Old 作為 CMS 出現 “Concurrent Mode Failure” 失敗後的後備收集器使用。

XX:+CMSParallelRemarkEnabled :降低标記停頓

-XX:+UseCMSCompactAtFullCollection:由于 CMS 收集器會産生碎片,此參數設定在垃圾收集器後是否需要一次記憶體碎片整理過程,僅在 CMS 收集器時有效

-XX:LargePageSizeInBytes:記憶體頁的大小不可設定過大,會影響 Perm 的大小,-XX:LargePageSizeInBytes=128m,需要 OS 支援

-XX:+UseFastAccessorMethods: 頻繁反射時,生成位元組碼來加速

-XX:CMSInitiatingOccupancyFraction=70: 設定 CMS 收集器在老年代空間被使用多少後出發垃圾收集,預設值為 70%,僅在 CMS 收集器時有效

-XX:+HeapDumpOnOutOfMemoryError: 發生 OOM 的時候自動 dump 堆棧友善分析

參考文檔: