一次JVM调优经历
前几天前端同事找我帮忙解决一个频繁FullGC问题。在100用户,每秒5个请求条件下进行测试,发现频繁FullGC。
使用VisualVM观察Jvm运行时信息,发现DB连接池占用了较多的资源。于是看了一下DB连接池的配置。
原来使用的是DriverManagerDataSource,DriverManagerDataSource没有实现连接池机制,也就是说一次请求,就需要创建一个DB链接,当并发高时,意味着创建大量的DB链接,由于内存空间有限,而DB链接又是比较占用内存的对象,所以当创建大量DB链接时,内存空间不够,就频繁发生PSYoungGen GC行为。
---- 自然和自然规律隐藏在黑暗中。上帝说,诞生吧,牛顿!于是一片光明。不久魔鬼说让爱因斯坦去吧,于是一切又重新回到黑暗中。
---- 科学前进一步,宗教后退一步,科学再进一步,宗教又退后一步,但是科学解决了有限问题,宗教最后总是无限。
---- 科学前进一步,宗教后退一步,科学再进一步,宗教又退后一步,但是科学解决了有限问题,宗教最后总是无限。