生产问题分析(数据库连接池问题)

问题现象:
业务通过域名访问生产环境反馈有时候正常,有时候特别卡,页面一直没有响应。

问题分析:
生产环境应用服务器有6个节点,通过应用服务器访问,逐个排查,发现有台服务器反应很慢。页面报错为:
Connection not available;time out waiting for 180,000 seconds.

业务通过域名访问,F5随机转发,如转发到有问题的应用服务器上,跟业务反馈的现象一致。

报connection连接超时,有以下可能:

  • 1、数据库宕机,连接不上;
  • 2、应用服务器中数据库连接池无可用连接;

目前其他应用服务器连接的是同一个数据库,且能够正常使用,因此可以排除第一种可能;
查看数据库连接池连接情况,目前FreePoolSize(可用连接)为0,PoolSize(连接池连接)只有10;
因此可以判断是第二种可能。
微信截图_20210515225351.png

解决方案:

  • 1、增加连接池连接;

虽然目前是因为连接数太少,导致缺少可用连接。但也不能盲目扩大。
跟DBA沟通,结合目前数据库连接负载情况,建议连接池设置的值为20-100。又因为有6台应用服务器,因为调整连接池连接数为20;

  • 2、查看是否有没有关闭的连接,以及是否存在慢sql;

查看sql session,发现确实有部分sql一直在执行,因为数据量太大,没有执行完毕。联系业务以及DBA,先kill掉session,并拉取sql对其优化。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享