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