gorm 数据库连接池 设置空闲5最大10, 压测为啥只能达到5, 100并发

发布于 2022-09-11 21:59:55 字数 375 浏览 12 评论 0

gorm 数据库连接池 设置空闲5最大10, 压测为啥只能达到5, 100并发

屏幕快照 2019-08-27 下午3.54.15
clipboard.png

屏幕快照 2019-08-27 下午3.54.24
clipboard.png

然后压测100的并发, 只有5个连接, 是哪里没注意到么

试了下注释掉两个set, 只有两条连接, 感觉SetMaxOpenConns貌似没起到效果

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罪歌 2022-09-18 21:59:55

你看到的5和2表示指的应该都是maxidleconn的值.
注释掉只有两个连接是因为gorm默认maxidleconn 是2

clipboard.png

不注释掉是5, 可以看下SetMaxOpenConns的实现

clipboard.png
syncMaxIdle := db.maxOpen > 0 && db.maxIdleConnsLocked() > db.maxOpen成立的时候, 会把maxidleconn设置成和maxopen一样.
maxIdleConnsLocked()返回的值从第一个图看就是maxIdle, 你这里设置的是5 小于maxopen 10, 所以syncMaxIdle为false, 底下的db.SetMaxIdleConns(n), 没有执行, maxidle依旧是5.

爱她像谁 2022-09-18 21:59:55

这个问题有解决方法吗,也遇到这个问题了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文