记录一次生产环境JVM调优的过程

1、起因:

系统运行了一个单机版的Flink,一直处于重启的状态,手动进行重启后,运行几分钟任务全挂了,不停进行Restart重试提交,陷入死循环,排查是因为TaskManage挂掉了,在对jobmanager.heap.size和taskmanager.heap.size进行了无数次设置后,依然会挂掉,最后发现是系统的内存已经所剩无几,只有1.4G了

记录一次生产环境JVM调优的过程

2、排查过程

排查其他的进程发现,很多模块的JVM参数设置过于偏高,如下图,Xms堆内存设置了2048m,我们不能盲目的去修改这个值,所以决定结合Jconsole进行性能监控,得出JVM参数的合理区间。

记录一次生产环境JVM调优的过程

针对这个模块,不停的发数据,让它处于高负荷状态,观察性能的变化:

记录一次生产环境JVM调优的过程

堆内存的开销最高值在300Mb左右,所以Xms初始堆内存设置为2048M是完成浪费且不合理的,改为-Xms 512Mb -Xmx 512Mb。

3、结论

按此方式进行性能优化,最终释放了2个多G的内存

记录一次生产环境JVM调优的过程