JVM調優實戰

JVM實戰調優jvm

jvm不會開啓記錄GC日誌,會影響性能,調優以後,就會關掉GC日誌性能

JVM調優主要就是調整下面兩個指標   減小FGC執行次數,減小FGC執行時間網站

停頓時間:垃圾收集器作垃圾回收中斷應用執行的時間。-XX:MaxGCPauseMillisspa

吞吐量:垃圾收集的時間和總時間的佔比:1/(1+n),吞吐量爲1-1/(1+n)。-XX:GCTimeRatio=n線程

GC調優步驟:日誌

  1.打印GC日誌內存

  -XX:+PrintGCDetails -XX:+PrintGCTimeStamps(在GC日誌裏面打印出詳細時間戳) -XX:+PrintGCDateStamps -Xloggc:./gc.logrem

  打印GC日誌輸出到文件內get

Tomcat 則直接加在JAVA_OPTS變量裏it

  分析日誌獲得關鍵性指標

  分析GC緣由,調優JVM參數

1.Parallel Scavenge收集器

分析日誌

第一次調優:設置Metaspace大小,增大元空間大小-XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M  (gceasy推薦調整,元空間大小能夠設置的大一些)

第二次調優:增大年輕代動態擴容增量,默認是20%,能夠減小young gc:-XX:YoungGenerationSizeIncrement=30

2.配置CMS收集器

-XX:+UseConcMarkSweepGC

3.配置G1收集器

-XX:+UseG1GC

-XX:InitiatingHeapOccupancyPercen:老年代佔用空間超過整堆比IHOP閾值(默認45%),超過則執行混合收集

調優:添加吞吐量和停頓時間參數:-XX:GCTimeRatio=99 -XX:MaxGCPauseMillis=10

使用https://gceasy.io/上傳gc日誌,該網站會分析日誌文件,給出調優建議

GC經常使用參數

堆棧設置

-Xss:每一個線程的棧大小

-Xms:初始堆大小,默認物理內存的1/64

-Xmx:最大堆大小,默認物理內存的1/4

-Xmn:新生代大小

-XX:NewSize:設置新生代初始大小

-XX:NewRatio:默認2表示新生代佔老年代的1/2,佔整個堆內存的1/3

並行收集器設置:

-XX:YoungGenerationSizeIncrement:年輕代gc後擴容比例,默認是20(%)

相關文章
相關標籤/搜索