java虚拟机 p1~p8
1.GC清理垃圾的三种形式(标记算法,根可达算法)
- mark-sweep(标记革除) → 碎片化
- copying(复制) → 空间节约
- mark-compact(标记压缩) → 效率低
2.垃圾回收器
- 垃圾回收器版本查问
java -XX:+PrintCommandLineFlags -version
3.堆内存
- minorGC = YGC = 年老代回收
eden(伊甸),survivor1(幸存者1),survivor2(幸存者2) - majorGC = OGC = 老年代回收
tenured - methodarea:perm(长久代)/metaspace(元数据)
4.GC参数获取命令
- java -help → 规范参数
- java -X → 非标参数
- java -XX:PrintFlagsFinal -version → 自定参数
5.cpu 100%时,首先查线程
- 业务线程(查业务bug)
- jvm线程(可能频繁GC,看log)
6.调优命令
- java自带
jps
jinfo pid
jstat -gc pid
jstack pid
jmap
- 阿里arthas
help
help [cmd]
dashboard
thread
thread -b
thread [tid]
watch
jad
redefine
heapdump