调优
调优对象: full gc的频率,频率越少越好,1天一次
造成full gc频繁的原因:
大对象过多,直接进入old区,快速占满old,朝生夕死的大对象比较少见,大对象复用,减缓大对象生成时间。
新对象极多,minor gc时,仍有一部分残留, 并且s区装不下残留的对象(大于s区50%,动态XXX), 直接进入old区; 扩大年轻代。
若内存受限, 则降低对象生成速率。
命令排查
jps 查询pid
jinfo pid 查询jvm启动参数
jstat -gc pid 查询gc统计情况
jstat -gc pid t n 每隔t毫秒 刷新一次,总计刷新n次 gc情况
jmap -heap pid 查询堆各个区域占用情况
jmap -histo pid > xx.dump 查询对内类详细信息
jmap -dump:format=b,file=xx.hprof pid 将详细信息打印出来
top 查看哪个pidCPU占用过高, H 查看进程内线程信息
jstack pid 查看线程, 找到cpu占用最多的线程, 查看线程栈情况,具体什么方法