1.内存优化示例
jmap -dump:format=b,file=/home/hadoop/dump.dat 50125(pid)
具体日志信息说明
2020-05-09T17:44:01.554+0800: ---GC事件开始时间
3.153: --GC时间开始时间相对于jvm开始启动时间间隔毫秒数
[Full GC] --区分是yonggc还是fullgc
(Ergonomics) --触发gc的原因
Ergonomics表示jvm内部认为可以执行一次GC,allocation failure,system.gc()
[PSYoungGen:37887k→0K(359424K)] --年轻代垃圾收集使用的容量→垃圾收集后使用的容量(年轻代占用总大小)
[ParOldGen:84645K→93168K] --老年代垃圾收集使用的容量→垃圾收集后使用的容量(老年代占用总大小)
122533K→93168K(544256K) --堆 垃圾收集前使用容量→垃圾收集后的使用容量(堆空间的总大小)
[Metaspace:3135K→3135K(1056768K)] --元空间 垃圾收集前使用容量→垃圾收集后的使用容量(元空间的总大小)
0.07736.7 secs --GC事件持续的时间
[Times:
user=1.25 --GC线程消耗的时间
sys=0.02 --GC过程中操作系统调用和等待所消耗的时间
real=0.07 secs --应用程序暂停的时间]
参数设置
java heap(堆内存):设置为fullGC之后的3-4倍 参数:-Xms和-Xmx
元空间:设置为fullgc之后的1.2-1.5倍 参数:-XX:MetaspaceSize和-XX:MaxMetaspaceSize
年轻代:设置为FullGC的1-1.5倍 参数:-Xmn
2.延迟优化实例
通过年轻代设置大小: MinorGC消耗时间和频率
年轻代大小更小:MinorGC时长更短,频率更高
年轻代大小太大:MinorGC时长更长,频率就会更低
3.死锁案例
jstack检测
jconsole检测
网友评论