003_java 触发full gc
线上zk集群由于数据量比较多,客户的数据量慢慢地增长,有一次突然达到gc上限,触发了full gc,这时zk处于不可用的状态,publisher进程退出,造成线上的故障
一、
(1)模拟及gc日志输出
jcmd查看运行的java进程,找到想要触发的java服务的full gc回收的pid xxxx,然后执行jcmd xxxx GC.run即可,在执行过程中查看zk的数据,有片刻的卡顿(由于这个是单台的测试机,使用内存较小,所以没有看到比较明显的服务长时间down的情况).如下图:
参考: