查看JVM运行时参数
命令如下:
java -XX:+PrintFlagsFinal -version
jps:查看java进程
jinfo 查看已经运行的进程参数值
1.查看最大内存
jinfo -flag MaxHeapSize 进程Id
2.查看垃圾回收器
jinfo -flag UseConcMarkSweepGC 进程Id
jinfo -flag UserG1GC 进程Id
jinfo -flag UseParallelGC 进程Id
jstat 查看JVM 统计信息
jstat -class 3176 1000 10
3176 进程id
1000 代表每隔1000毫秒输出一次
10 一共输出10次
Loaded 加载的类的个数
Bytes 加载的类占了多少KB
Unloaded 卸载的类的个数
Bytes 卸载的类占了多少KB
Time 装载和卸载花费的总时间
垃圾回收
jstat -gc 3176 1000 3
3176 进程id
1000 代表每隔1000毫秒输出一次
3 一共输出3次
JVM 分为两大块,一个是堆区,一个是非堆区。
堆区分为 Young 和 Old,
Young 分为 Swap 和 Eden;
Swap 分为 S0+S1,S0和S1大小相等,在同一时间点,只有一个是启用的,另一个是空的。
非堆区:操作系统的本地内存,独立于JVM的堆区之外,叫做Metaspace。分为CSS 和 CodeCache.