主要是 mybatis 多数据源(配置了两个数据库,oracle 和 sql server,但是只使用了一个) + druid 。
测试了在 win 和 linux 分别部署,结果是一样的,第二天的第一次请求特别慢,达到 1-2 分钟。
我在请求 pending 的时候取了 thread dump,不太会看。。。
thread dump: https://note.ms/evah
主要是 mybatis 多数据源(配置了两个数据库,oracle 和 sql server,但是只使用了一个) + druid 。
测试了在 win 和 linux 分别部署,结果是一样的,第二天的第一次请求特别慢,达到 1-2 分钟。
我在请求 pending 的时候取了 thread dump,不太会看。。。
thread dump: https://note.ms/evah
|
watzdsApr 26, 2020 via Android
1
可能数据库连接闲置后断开了,第一次要重连
|
|
watzdsApr 26, 2020 via Android
2
不过一两分钟也太慢了
|
|
securityCodingApr 26, 2020
4
开启 selelct 1 连接探测
|
|
bigdogbigpigApr 26, 2020 via iPhone
5
看日志慢在哪里啊,dump 没用
|
|
xiaoxinshiwoApr 26, 2020
6
mybatis 设置 dialect 属性
|
|
8
@securityCoding 项目集成了 springboot admin,日志里可以看到每几秒都有 select 'hello' from dual, 这个是不是同样的效果?
|
|
9
我贴一下配置文件
https://note.ms/ateu |
|
otakustayApr 26, 2020
10
简单点,端到端,写个脚本每 1 分钟去 curl 一下首页就好了
|
|
fewokApr 26, 2020
11
换个角度,会不会是数据库的问题?
|
|
12
@xiaoxinshiwo 那多数据源应该怎么设置?
|
|
xiaoxinshiwoApr 26, 2020
13
@BaiMax #12 多数据源一样设置啊,只不过有个数据源设置为主数据源
|
|
fmumuApr 26, 2020 via Android
14
多次 dump 看看线程在干嘛
|
|
yukilohApr 26, 2020 via Android
15
我遇到的情况是,数据库是 maria5.x,最后推断是 maria 的配置的存活时间< springboot 配置的时间(两者才用的时间制式不一样),导致假死(可能,因为最后都没搞定,换了高版本解决)
|
|
tab16360Apr 26, 2020 via Android
16
https://x1024.com/index.php/archives/14/
看看这个是不是能解决 |
|
gengzApr 26, 2020
17
druid:
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 30000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false druid 的配置, 你参考下 |
|
senninhaApr 26, 2020
18
录个 JFR 分析一下啊
|
|
temp178Apr 26, 2020
19
可能是数据库连接池里都超时了,然后请求的时候拿出连接来,一个个都超时了,比较慢,参考#17
|
|
hengyunabcApr 26, 2020
20
|
|
21
上次的 dump 好像没什么内容,更新了一下正文的 Thread dump..
|