【go】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貌似没起到效果
回答
你看到的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.
这个问题有解决方法吗,也遇到这个问题了
以上是 【go】gorm 数据库连接池 设置空闲5最大10, 压测为啥只能达到5, 100并发 的全部内容, 来源链接: utcz.com/a/107919.html