mongoDB 百万量级是否需要做集群? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
frostfall
V2EX    程序员

mongoDB 百万量级是否需要做集群?

  •  
  •   frostfall 2017-03-27 14:09:07 +08:00 8561 次点击
    这是一个创建于 3123 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前公司 MongoDB ( Version:2.6)单机运行,大并发查询与写入的时候性能很低

    想到的解决方法:

    1 、据说 3.X 版本性能有很大提升,但是测试环境升到 3.4 直接好多方法已废弃,代码上要进行大量修改,这条路貌似走不通

    2 、另一个方法就是集群,但是感觉百万量级上集群是不是杀鸡用牛刀了?

    所以有两个问题想请教各位

    Q1 :尽量不大量修改代码的情况下, MongoDB 3.X 哪个版本可用?

    Q2 :上集群是否大材小用,毕竟在 MongoDB 上没有太多经验

    22 条回复    2017-03-28 13:57:28 +08:00
    suren1986
        1
    suren1986  
       2017-03-27 14:14:42 +08:00
    1. 大量查询为啥不做 replica?
    2. 写入性能低的原因是什么?只是磁盘么?换 SSD ?
    scofieldpeng
        2
    scofieldpeng  
       2017-03-27 14:18:14 +08:00
    连接池和异步有试过么?大并发查询每次都打到数据库?有考虑过热点缓存么?
    scofieldpeng
        3
    scofieldpeng  
       2017-03-27 14:18:38 +08:00
    我觉得把这个做好了,你应该能撑一段时间了
    we3613040
        4
    we3613040  
       2017-03-27 14:20:44 +08:00
    只是百万级别的就不行了?不是吧
    zacard
        5
    zacard  
       2017-03-27 14:43:15 +08:00
    其实想问,这个量级为何不用 mysql 。

    然后,你们应该先测试下单纯写的效率。读的话索引是否合理等。
    集群也可以啊, mongodb 上集群简单。只是还是觉得你们这条路走下去很可能还是得回到 mysql 。。。
    frostfall
        6
    frostfall  
    OP
       2017-03-27 14:43:23 +08:00
    @suren1986 之前因为大并发下硬盘太慢, page faults 太多,于是换了一台新服务器,只跑 MongoDB 。平时内存占用只在 1GB 左右, 但是并发测试下依旧很慢,这时 Mongostat 查看 page faults 并不多,内存占用升到 4GB 左右
    icegren
        7
    icegreen  
       2017-03-27 15:07:55 +08:00
    百万量级应该单机是能抗住的, 建议分析一下瓶颈在哪里, 优化一下程序;
    sampeng
        8
    sampeng  
       2017-03-27 17:06:58 +08:00
    超过十万就需要,不仅仅是扛量,更多的是主从,挂了还能接着用。。。

    另外。。。为毛不用 mysql 。。。 mongodb 我知道的都切回了 mysql 。。。量越大切的越早。还是有这么多要当小白鼠的
    sampeng
        9
    sampeng  
       2017-03-27 17:08:35 +08:00
    没有经验还要去趟雷。。
    frostfall
        10
    frostfall  
    OP
       2017-03-27 17:29:09 +08:00
    测试环境模拟并发,几乎不能复现,推测应该不是性能问题,看来现在要转变思路解决问题了
    tinybaby365
        11
    tinybaby365  
       2017-03-27 18:14:30 +08:00
    写入是修改,还是新插入?修改如果超过原 doc 的 size ,就会新开辟空间并产生碎片。

    查询,可以加索引,组合索引。

    卡的时候最好用 MMS 看看。
    popbones
        12
    popbones  
       2017-03-27 18:18:32 +08:00
    每个月都要被 MongoDB 坑一次的来围观
    mathgl
        13
    mathgl  
       2017-03-27 18:54:12 +08:00
    mongodb 2.6 问题挺多的。不推荐使用。

    mongodb 就我使用经验而言,查询和插入的性能和 pg 比较并没有优势。
    imzshh
        14
    imzshh  
       2017-03-27 19:38:34 +08:00
    百万量级是个什么概念?百万并发请求?
    rrfeng
        15
    rrfeng  
       2017-03-27 20:02:42 +08:00
    page faults 太多是内存配的太小吧?
    mmap 还是 wt 引擎?

    我们集群过亿的 collection 有好几个,也就 2 节点读 1 primary 写。

    根据我的经验,大部分性能问题是因为没有 mongodb 经验,从根本上来说除了因为实现不同导致一些差异(例如没有事务)外,性能上都有解决方案。只是 mysql 现成文档多, mongodb 需要自己钻研。
    rrfeng
        16
    rrfeng  
       2017-03-27 20:02:59 +08:00
    另外单机你不怕丢么?
    suyuanhxx
        17
    suyuanhxx  
       2017-03-27 22:28:15 +08:00
    面试时被问到 mongodb 的使用业务场景,我瞬间懵逼了......我回答的是用户无规律行为(如点击链接,数据统计分类不明确时)
    sujin190
        18
    sujin190  
       2017-03-27 23:51:51 +08:00
    也从 2.6 升级到 3.2 ,没遇到什么不兼容问题啊。。
    不过话说用了许久 mongodb 整体感觉确实有点怪,压力不高但是慢查询一堆,整体性能还是很靠谱的,不过 3 的 wt 引擎感觉性能更稳定一些,用来做日志缓冲,每天写几千万也毫无压力
    FrankFang128
        19
    FrankFang128  
       2017-03-28 00:47:12 +08:00
    少用 mongodb 啊,被坑过
    zaishanfeng
        20
    zaishanfeng  
       2017-03-28 07:18:38 +08:00 via Android
    mongo 优化的好比 mysql 方便的多, 问题是版本更新太快,兼容性不好,网上的资料又比较杂,用起来比较费劲。那些说 mongo 坑的, 估计是习惯了关系数据库那一套,不想折腾吧
    wakaka
        21
    wakaka  
       2017-03-28 09:47:37 +08:00
    集群都不做,看来数据不重要
    frostfall
        22
    frostfall  
    OP
       2017-03-28 13:57:28 +08:00
    之前发的不知道为什么没有了,测试环境模拟大并发不能复现,看样子不是性能问题,已经考虑做 replica 实现容灾了,谢谢各位
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3306 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 11:59 PVG 19:59 LAX 04:59 JFK 07:59
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86