1、对于运行中的系统,想检查JVM中的整体运行情况,最常用的工具就是jstat
2、通过jstat可以查看JVM内部的内存的使用情况,还有GC的执行次数以及耗时
3、通过这些指标,可以判断出系统的当前内存使用压力以及GC压力,内存分配是否合理
新生代对象的增长速度
1、对JVM首先要了解的,就是随着系统的运行,每秒钟会在年轻代的Eedn区分配多少对象
2、 jstat -gc [PID] 1000每隔1秒中执行1次jstat统计
3、举例:第一秒先显示Eden区使用了200MB内存,第二秒显示Eden区使用了205MB内存,第三秒显示Eden区使用了209MB内存,此时你可以轻易的推断出来,这个系统大概每秒钟会新增5MB左右的对象
4、按照上述思路,可以把握线上系统的高峰和日常两个时间段的对象增长速率。
Young GC的触发频率
1、知道新生代对象的增长的速度,很容易推测出来多久发生一次Young GC
2、比如5MB每秒,Eden区一共300MB,则大概1分钟就会Monitor GC一次。
Young GC平均耗时
1、jstat结果显示了系统已经发生饿多少次Young GC以及这些Young GC总耗时
2、比如系