golang初探之个人web项目查询性能提升16倍

aside section._1OhGeD · · 1184 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

   简述

        作为4年JAVA工程师的我,业余时间使用Go语言来开发一个名为leavemsg项目,中文名是时光留言网。在一台4核8G内存的服务器上做压测的时候发现查询接口不到500TPS。因为项目架构是httpserver+mgo+mongodb4.0,不可能这么低。经过一晚上的排除和优化。最终达到8000TPS+。

     

    先上结论

        第一步:修改连接数据库的IP地址为本地127.0.0.1。

        使用了外网IP作为数据库连接的IP,错误。因为本项目的服务和mongodb是部署在一起的。因此修改为127.0.0.1,即本地访问。仅此一步:

提升:500TPS > 6000TPS

        第二步:替换更好的mongodb驱动。
    

        github.com/globalsign/mgo替换gopkg.in/mgo.v2。原因是globalsign/mgo驱动是在gopkg.in/mgo.v2的基础上进行优化和修复了一些bug的版本。其中bson性能得到优化。

提升:6000TPS>7500TPS

ab压测命令:ab -n 100000 -c 1000 -p text.json http://127.0.0.1/msg/find?uid=01DQT4BVD1GTWF9T2JCP5VH698         


图2

这里给出依赖地址。可以直接引用到工程里面。只需要更换依赖并不需要修改代码。因为API都是一样的。

import (
"github.com/globalsign/mgo"
"github.com/globalsign/mgo/bson"
)


 第三步:修改连接数

连接数从100到1000。


图1

提升:7500TPS > 8200TPS

ab压测命令:

ab -n 300000 -c 1000 -p text.json http://127.0.0.1/msg/find?uid=01DQT4BVD1GTWF9T2JCP5VH698

            

图3

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

本文来自:简书

感谢作者:aside section._1OhGeD

查看原文:golang初探之个人web项目查询性能提升16倍

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

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