容器化部署jar包JVM參數配置參考


分配內存   堆配置推薦

1.5G          -Xmx1008M -Xms1008M -Xmn336M -XX:MaxMetaspaceSize=128M -XX:MetaspaceSize=128M

2G              -Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M

3G              -Xmx2048M -Xms2048M -Xmn768M -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M

4G              -Xmx2688M -Xms2688M -Xmn960M -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M

5G              -Xmx3392M -Xms3392M -Xmn1216M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M

6G              -Xmx4096M -Xms4096M -Xmn1536M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M

7G              -Xmx4736M -Xms4736M -Xmn1728M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M

8G              -Xmx5440M -Xms5440M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M

內存>=8G 基礎配置    

-server
-XX:+DisableExplicitGC
-XX:+UseG1GC
-XX:MaxGCPauseMillis=100
-XX:+ParallelRefProcEnabled
-XX:+HeapDumpOnOutOfMemoryError
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintHeapAtGC
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCDateStamps
-XX:ErrorFile=/var/app/gc/hs_err_pid%p.log
-XX:HeapDumpPath=/var/app/gc
-Xloggc:/var/app/gc/gc%t.log

內存<8G 基礎配置

-server
-XX:+DisableExplicitGC
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=70
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
-XX:+CMSClassUnloadingEnabled
-XX:+ParallelRefProcEnabled
-XX:+CMSScavengeBeforeRemark
-XX:+HeapDumpOnOutOfMemoryError
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintHeapAtGC
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCDateStamps
-XX:ErrorFile=/var/app/gc/hs_err_pid%p.log
-XX:HeapDumpPath=/var/app/gc
-Xloggc:/var/app/gc/gc%t.log

內存<8G JAR包啟動腳本,並配置遠程jvisualvm監控參數

jarname='meteo-service-1.0-SNAPSHOT'
pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`
echo $pid
if [ "$jarname" != "" ]
then
kill -9 $pid
fi
kill -9 $pid
#!/bin/sh --spring.profiles.active=dev
java \
-Djava.rmi.server.hostname=192.168.1.175 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=8082 \
-Dcom.sun.management.jmxremote.rmi.port=8082 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar $jarname.jar \
--spring.profiles.active=local \
-server -Xmx1024m -Xms1024m -Xmn512m -Xss512k -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70
echo "start successed!!!"

 

-server #服務器模式

-Xmx4g #JVM最大允許分配的堆內存,按需分配
-Xms4g #JVM初始分配的堆內存,一般和Xmx配置成一樣以避免每次gc后JVM重新分配內存。
-Xmn256m #年輕代內存大小,整個JVM內存=年輕代 + 年老代 + 持久代
-Xss512k #設置每個線程的堆棧大小
-XX:+DisableExplicitGC #忽略手動調用GC, System.gc()的調用就會變成一個空調用,完全不觸發GC
-XX:+UseConcMarkSweepGC #並發標記清除(CMS)收集器
-XX:+CMSParallelRemarkEnabled #降低標記停頓
-XX:LargePageSizeInBytes=128m #內存頁的大小
-XX:+UseFastAccessorMethods #原始類型的快速優化
-XX:+UseCMSInitiatingOccupancyOnly #使用手動定義初始化定義開始CMS收集
-XX:CMSInitiatingOccupancyFraction=70 #使用cms作為垃圾回收使用70%后開始CMS收集
-Ddruid.registerToSysProperty=true


-server -Xmx1024m -Xms1024m -Xmn512m -Xss512k -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Dcom.sun.management.jmxremote.port=30600 -Dcom.sun.management.jmxremote.rmi.port=30600 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.122

-Dcom.sun.management.jmxremote.port=8999(jmx連接端口號) -Dcom.sun.management.jmxremote.rmi.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=xxx.xx.xx.xx(ip地址)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM