9开启线程日志_GC 日志分析
生活随笔
收集整理的這篇文章主要介紹了
9开启线程日志_GC 日志分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
GC 日志分析
首先,如果需要查看 GC 日志,需要在 jvm 參數中加入如下參數
-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:d:/GClogs/tomcat6-gc.logGC 日志
2016-11-23T11:01:27.738+0800: 0.150: [GC [PSYoungGen: 331K->288K(5952K)] 331K->288K(19648K), 0.0006495 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
2016-11-23T11:01:27.739+0800: 0.152: [Full GC (System) [PSYoungGen: 288K->0K(5952K)] [PSOldGen: 0K->164K(13696K)] 288K->164K(19648K) [PSPermGen: 3054K->3054K(21248K)], 0.0059625 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
2016-11-23T11:01:27.852+0800: 0.264: [GC [PSYoungGen: 103K->64K(5952K)] 267K->228K(19648K), 0.0066830 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
2016-11-23T11:01:27.859+0800: 0.271: [Full GC (System) [PSYoungGen: 64K->0K(5952K)] [PSOldGen: 164K->165K(13696K)] 228K->165K(19648K) [PSPermGen: 3060K->3060K(21248K)], 0.0052429 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]Young GC 日志
Full GC 日志分析
JVM 參數設置
jvm 參數對應堆內存設置
比例設置
JVM 相關參數說明
堆分配參數
-Xmn10M:設置新生代區域大小為10M
-XX:NewSize=2M:設置新生代初始大小為2M
-XX:MaxNewSize=2M:設置新生代最大值為2M
(如果以上三個同時設置了,誰在后面誰生效。生產環境使用-Xmn即可,避免抖動)
-Xms128M:設置java程序啟動時堆內存128M(默認為物理內存1/64,且小于1G)
-Xmx256M:設置最大堆內存256M,超出后會出現 OutOfMemoryError(默認為物理內存1/64,且小于1G)
(生產環境 -Xms 與 -Xmx 最好一樣,避免抖動)
-Xss1M:設置線程棧的大小 1M(默認1M)
-XX:ThreadStackSize,-Xss 設置在后面,以-Xss為準;
-XX:ThreadStackSize設置在后面,主線程以 -Xss為準,其他線程以 -XX:ThreadStackSize為準
-XX:MinHeapFreeRatio=40:設置堆空間最小空閑比例(默認40)(當-Xmx與-Xms相等時,該配置無效)
-XX:MaxHeapFreeRatio=70:設置堆空間最大空閑比例(默認70)(當-Xmx與-Xms相等時,該配置無效)
-XX:NewRatio=2:設置年輕代與年老代的比例為2:1
-XX:SurvivorRatio=8:設置年輕代中eden區與survivor區的比例為8:1
-XX:MetaspaceSize=64M:設置元數據空間初始大小(取代-XX:PermSize)
-XX:MaxMetaspaceSize=128M:設置元數據空間最大值(取代之前-XX:MaxPermSize)
-XX:TargetSurvivorRatio=50:設置survivor區使用率。當survivor區達到50%時,將對象送入老年代
-XX:+UseTLAB:在年輕代空間中使用本地線程分配緩沖區(TLAB),默認開啟
-XX:TLABSize=512k:設置TLAB大小為512k
-XX:+UseCompressedOops:使用壓縮指針,默認開啟
-XX:MaxTenuringThreshold=15:對象進入老年代的年齡(Parallel是15,CMS是6)垃圾回收器相關
-XX:MaxGCPauseMillis:設置最大垃圾收集停頓時間(收集器工作時會調整其他參數大小,盡可能將停頓控制在指定時間內)
-XX:+UseAdaptiveSizePolicy:打開自適應GC策略(該摸式下,各項參數都會被自動調整)
-XX:+UseSerialGC:在年輕代和年老代使用串行回收器
-XX:+UseParallelGC:使用并行垃圾回收收集器,默認會同時啟用 -XX:+UseParallelOldGC(默認使用該回收器)
-XX:+UseParallelOldGC:開啟老年代使用并行垃圾收集器,默認會同時啟用 -XX:+UseParallelGC
-XX:ParallelGCThreads=4:設置用于垃圾回收的線程數為4(默認與CPU數量相同)
-XX:+UseConcMarkSweepGC:使用CMS收集器(年老代)
-XX:CMSInitiatingOccupancyFraction=80:設置CMS收集器在年老代空間被使用多少后觸發
-XX:+CMSClassUnloadingEnabled:允許對類元數據進行回收
-XX:+UseCMSInitiatingOccupancyOnly:只在達到閾值的時候,才進行CMS回收
-XX:+UseG1GC:使用G1回收器
-XX:G1HeapRegionSize=16m:使用G1收集器時設置每個Region的大小(范圍1M - 32M)
-XX:MaxGCPauseMillis=500 :設置最大暫停時間(毫秒)
-XX:+DisableExplicitGC:禁止顯示GC的調用(即禁止開發者的 System.gc();)GC日志
-XX:+PrintGCDetails:打印GC信息
-XX:+PrintGCTimeStamps :打印每次GC的時間戳(現在距離啟動的時間長度)
-XX:+PrintGCDateStamps :打印GC日期
-XX:+PrintHeapAtGC:每次GC時,打印堆信息
-Xloggc:/usr/local/tomcat/logs/gc.$$.log :GC日志存放的位置堆快照
-XX:+HeapDumpOnOutOfMemoryError:出現內存溢出時存儲堆信息,配合 -XX:HeapDumpPath 使用
-XX:HeapDumpPath=/usr/local/tomcat/logs/oom.%t.log:堆快照存儲位置
-XX:+UseLargePages:使用大頁
-XX:LargePageSizeInBytes=4m:指定大頁的大小(必須為2的冪)
總結
以上是生活随笔為你收集整理的9开启线程日志_GC 日志分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高清动态壁纸在线制作教程
- 下一篇: c++主线程等待子线程结束_简单明了的