G1垃圾回收参数调优及MySQL虚引用造成GC时间过长分析
原文中文,约22700字,阅读约需54分钟。发表于: 。一、背景我方有一应用,偶尔会出现GC时间过长(间隔约4小时),导致性能波动的问题(接口最长需要耗时3秒以上)。经排查为G1垃圾回收器参数配置不当 叠加 MySQL 链接超过闲置时间回收,产生大量的虚引用,导致G1在执行老年代混合GC,标记阶段耗时过长导致。以下为对此问题的分析及问题总结。此外,此应用因为使用redis缓存为数据库缓存一段时间的热点数据,导致业务起量创建数据库链接后,会很容易被闲置,...
本文讨论了应用程序中GC时间过长导致性能波动的问题,发现问题源于G1垃圾回收器参数配置不当和MySQL连接池的虚引用。解决方案包括调整JVM参数和优化MySQL的虚引用问题。调整后的JVM参数能更好地控制GC时间,解决了性能问题。建议升级MySQL驱动版本或通过反射清理虚引用来解决MySQL的虚引用问题。