1.內(nèi)存優(yōu)化示例
jmap -dump:format=b,file=/home/hadoop/dump.dat 50125(pid)
具體日志信息說明
2020-05-09T17:44:01.554+0800: ---GC事件開始時間
3.153: --GC時間開始時間相對于jvm開始啟動時間間隔毫秒數(shù)
[Full GC] --區(qū)分是yonggc還是fullgc
(Ergonomics) --觸發(fā)gc的原因
Ergonomics表示jvm內(nèi)部認(rèn)為可以執(zhí)行一次GC熙兔,allocation failure语御,system.gc()
[PSYoungGen:37887k→0K(359424K)] --年輕代垃圾收集使用的容量→垃圾收集后使用的容量(年輕代占用總大小)
[ParOldGen:84645K→93168K] --老年代垃圾收集使用的容量→垃圾收集后使用的容量(老年代占用總大胁ζ搿)
122533K→93168K(544256K) --堆 垃圾收集前使用容量→垃圾收集后的使用容量(堆空間的總大小)
[Metaspace:3135K→3135K(1056768K)] --元空間 垃圾收集前使用容量→垃圾收集后的使用容量(元空間的總大小)
0.07736.7 secs --GC事件持續(xù)的時間
[Times:
user=1.25 --GC線程消耗的時間
sys=0.02 --GC過程中操作系統(tǒng)調(diào)用和等待所消耗的時間
real=0.07 secs --應(yīng)用程序暫停的時間]
參數(shù)設(shè)置
java heap(堆內(nèi)存):設(shè)置為fullGC之后的3-4倍 參數(shù):-Xms和-Xmx
元空間:設(shè)置為fullgc之后的1.2-1.5倍 參數(shù):-XX:MetaspaceSize和-XX:MaxMetaspaceSize
年輕代:設(shè)置為FullGC的1-1.5倍 參數(shù):-Xmn
2.延遲優(yōu)化實(shí)例
通過年輕代設(shè)置大小: MinorGC消耗時間和頻率
年輕代大小更小:MinorGC時長更短,頻率更高
年輕代大小太大:MinorGC時長更長荠割,頻率就會更低
3.死鎖案例
jstack檢測
jconsole檢測