为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 达梦8
【操作系统】:通信UOS20
【CPU】: aarch64架构,64位,8核
【问题描述】*:
springboot项目在正式服务器上试运行, 给用户展示和试用的时候, 所有接口突然都无响应了.
查程序日志, 报错: Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: Hik
ariPool-1 - Connection is not available, request timed out after 30000ms.
此后, 所有接口都无法返回响应, 无法再次连接数据库.
重启数据库或者重启程序后, 就恢复正常了.
然后经过大概4小时, 又回出现上述无法连接数据库的情况. 重启后又恢复正常.
昨天和今天, 这个现象已经出现4次了.
展示的时候, 同时在线用户数量在10人左右.
orm用的mybatis, 数据源用的hikari.
昨天数据源最大连接数配的是10个, 昨晚已改为200个, 但今天还是出现这种异常.
另外, 发现一个用户信息查询接口, 里面的逻辑有写数据库的操作, 且这个接口是被频繁调用的. 现已去除掉这个接口中的写数据库操作.
在测试环境对后端接口使用Jmeter进行压力测试, 发现对 登录接口 1秒内并发请求2000次后, 也出现与上述异常相同的现象: 持续无法连接数据库, 重启数据库或程序后恢复正常.
请问这个问题该如何排查?
p.s.测试环境测试发现, 发生异常时只是当前程序无法连接数据库, 别的设备上的程序仍能连接数据库.