gopkg.in/mgo.v2 压力测试时并发越高速度越慢

glx_la · · 1427 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

**使用mgo连接mongodb,压测时如果用go test() 测试时速度越来越慢【开始几十毫秒,最后就需要几秒甚至几十秒,查看mongo日志没有发现慢查询,从日志看mongo的查询还是很快的】,但是当这样测试时速度就很稳定一直都是几十毫秒(把go关键字去掉,单线程执行)。** for i:=0;i<100;i++ { test() } **求大神指点为什么在并发下mgo的查询操作会越来越慢【本机测试不存在网络消耗】?观察cpu和内存也并没有到瓶颈 ** for i:=0;i<100;i++ { go test() } func test(){ t1 := time.Now().UnixNano() / 1e6 session:=CloneSession() defer session.Close() c:=session.DB("irectoryperdb").C("test") err:=c.Find(bson.M{"data.id": bson.M{"$gte": 1527319500, "$lte": 1527319500}, "index": "test_1min_index"}).Select(bson.M{"data.id":1}).Sort("-data.id").All(&kline) if err!=nil{ fmt.Println(err) } fmt.Printf("%d,%d\n",time.Now().UnixNano()/1e6 - t1,len(kline)) } func init() { globalMgoSession, err := mgo.Dial("127.0.0.1:27017") if err != nil { panic(err) } GlobalMgoSession=globalMgoSession GlobalMgoSession.SetMode(mgo.Monotonic, true) //default is 4096 GlobalMgoSession.SetPoolLimit(4096) }

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1427 次点击  
加入收藏 微博
1 回复  |  直到 2019-05-22 09:32:25
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传