gorm 数据库连接池 设置空闲5最大10, 压测为啥只能达到5, 100并发
gorm 数据库连接池 设置空闲5最大10, 压测为啥只能达到5, 100并发
屏幕快照 2019-08-27 下午3.54.15
屏幕快照 2019-08-27 下午3.54.24
然后压测100的并发, 只有5个连接, 是哪里没注意到么
试了下注释掉两个set, 只有两条连接, 感觉SetMaxOpenConns貌似没起到效果
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你看到的5和2表示指的应该都是maxidleconn的值.
注释掉只有两个连接是因为gorm默认maxidleconn 是2
不注释掉是5, 可以看下SetMaxOpenConns的实现
当
syncMaxIdle := db.maxOpen > 0 && db.maxIdleConnsLocked() > db.maxOpen
成立的时候, 会把maxidleconn设置成和maxopen一样.maxIdleConnsLocked()返回的值从第一个图看就是maxIdle, 你这里设置的是5 小于maxopen 10, 所以syncMaxIdle为false, 底下的
db.SetMaxIdleConns(n)
, 没有执行, maxidle依旧是5.这个问题有解决方法吗,也遇到这个问题了