分享

百度云MongoDB经验分享及遇到问题解决办法

pig2 发表于 2014-9-29 02:03:41 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 1 24052
问题导读
1.百度是怎么用Mongo的?
2.连接数爆炸的问题的原因是什么?
3.auto balancer会出现什么问题?




Mongo特点是具有丰富的数据类型,具有丰富的索引/查询模式支持,Schemaless灵活,比较容易上手,还可以自动分享,同时还具有较高的性能。

那么,百度云是怎么用Mongo的呢?

其应用场景主要有结构化存储平台PSS;典型的应用有:图片exif信息;通讯录;设备同步。在百度网盘中,图片的分类就是利用了MongoDB。以及数据量达到百亿、千亿的应用。对于性能方面的要求,如果该应用属于在线业务,平均响应时间要求10ms内。具有多索引需求,包含数据索引的应用,都适合使用MongoDB。

它的特点是规模比较大,单表数据量可达到数百亿,而且容易触发Mongo的一些性能隐患。数据属于冷数据,而且对于数据起用法固定。都是基于个人的数据,可以很好按照uid分享。而且查询模式也相对简单。


1.jpg

2.jpg


在应用过程中,我们也遇到了很多问题。

比如:连接数爆炸的问题。当conn一直上涨,达到配置的极限值以后,就开始拒绝服务了。之所以会出现这些问题,主要是,缓慢查询,客户端太多。对于这些问题,我们通过监控及早发现,针对慢查询用KillOp()杀掉。针对客户端过多的情况,增加一层proxy。

还有就是auto balancer。在数据量小的时候,是不会有问题的。但是一旦开始balancer,线上服务就开始不稳定,系统就开始读写变慢,超时,conn,qr上涨。即使调整了balancer窗口,也不能从根本上解决问题,要不了几天窗口还会被缩小。我们通过moveChunk后删除阶段限速,能缓解问题。通过pre-sharing,然后可以关闭auto balance。




已有(1)人评论

跳转到指定楼层
ainubis 发表于 2015-4-2 00:46:21
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条