JVM常用調優參數以及linux服務器啟動項目命令jvm參數調優案例


我們知道:jvm的內存存儲以及內存分配,主要集中在方法區、堆。針對這兩塊,給出的調優參數如下:

 

一:調優參數初始化堆大小(有的叫jvm內存): -Xms256M //256M指的是具體大小,初始化堆大小=最大堆大小,可以在一定程度上在GC后重新分配內存

最大堆大小(有的叫jvm內存):    -Xmx256M  //初始化堆大小=最大堆大小,可以在一定程度上在GC后重新分配內存

年輕代大小: -Xmn512M //設置堆里面的年輕代大小。整個JVM內存的大小=年輕代+老年代+永久代(jdk1.8之后叫元空間)。永久代一般固定大小64M。所以增大年輕代,減小老年代大小。此值對系統性能影響較大。Sun推薦配置為整個堆的3/8
元空間初始大小: -XX:MatespaceSize=100M //該值是設置方法區的元空間初始化大小,該值越大,觸發GC時間就越晚。

元空間內存最大值: -XX:MaxMatespaceSize=100M //該值是設置方法區的元空間最大值,如果不設置,默認是系統的 內存大小,設置了,可以限制元空間無限的使用服務器內存,影響其他程序。

堆棧信息: -XX:OmitStackTraceInFastThrow //這個是用來解決重復異常不打印堆信息的設置。設置了,便會重復打印堆信息



二:用於啟動java的jar包服務的linux命令(后台啟動)

nohup java -server -Xms256M -Xmx256M -Xmn512M -XX:MatespaceSize=64M -XX:MaxMatespaceSize=100M -XX:OmintSackTraceInFastThrow -jar XXX.jar --spring.config.loacal=/xxpath1/xxpath2/ --logging.config=/xxpath1/logback.xml > ${logpath} 2 > &1 &

優化2:提取中間變量來替代jvm的調優參數:
 
        
# `pwd` 執行系統命令並獲得結果
BASE_PATH=`pwd`

# 外部配置文件絕對目錄,如果是目錄需要/結尾,也可以直接指定文件
# 如果指定的是目錄,spring則會讀取目錄中的所有配置文件
CONFIG_DIR=${BASE_PATH}"/config/"
# 項目日志輸出絕對路徑
LOG_DIR=${BASE_PATH}"/logs"
LOG_FILE="${APPLICATION}.log"
LOG_PATH="${LOG_DIR}/${LOG_FILE}"
JAVA_OPT="-server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"

所以完整命令(注意你的系統是否識別nohup命令,如果不識別,缺少安裝插件,網上搜 linux nohup即可):
nohup java ${JAVA_OPT} -jar XXX.jar --spring.config.location=${CONFIG_DIR} --logging.config=${CONFIG_DIR}logback.xml > ${LOG_PATH} 2>&1 &


免責聲明!

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



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