mongodb在没使用SSD时就是个坑货

2013-12-12 23:13:55 +08:00
 xoxo
不服来辨
10914 次点击
所在节点    MongoDB
17 条回复
advancedxy
2013-12-12 23:34:44 +08:00
有ssd也抗不牢,还是将mongodb当成内存数据库来看好了..
xzl
2013-12-12 23:43:29 +08:00
还是应用场景来看,mmap方式的映射你始终要保证内存>索引+热数据size,否则长期fault不为零,内存和硬盘一直来回颠簸,你就是ssd也扛不住啊,可试着调整syncdelay。
ericFork
2013-12-12 23:48:28 +08:00
linode
2013-12-12 23:52:17 +08:00
mongodb 在坑货人眼里就是个坑货
ritksm
2013-12-12 23:54:04 +08:00
你先给出数据呗。没数据要别人和你辩?
ritksm
2013-12-12 23:55:18 +08:00
我说MySQL在没有SSD的时候就是个坑货 不服来辩 岂不是也适用?要人心服口服的时候没有数据,没有案例给出来。辩什么。呵呵
xoxo
2013-12-12 23:58:35 +08:00
@ritksm 写过一个广告管理平台,流量不算特别大,反正就有HIT点击、访问这些统计数据,最终都存进了MongoDB了。起先是直接使用的MongoDB,在被主业务调用频次少时还好,大过后速度明显跟不上。后来用了别的内存KV数据库,队列处理数据才解决了这个问题。
配置啥的虽然我没去看,但如果这是MongoDB的优势的话,默认配置不体现出来热数据内存持久化真心很遗憾。
xoxo
2013-12-12 23:59:49 +08:00
BTW,是去年写的平台,早已跳槽,最近工作中一项目可能用到MongoDB,所以再来挖挖以前被埋过的坑。
ritksm
2013-12-13 00:06:38 +08:00
@xoxo 按我的理解是。你做了一个广告数据存储和查询的平台。

那么是否用了Index:http://docs.mongodb.org/manual/administration/indexes/
Index又是如何设置的,是否是设置在查询的键上了。

再者Index大小是否超过了内存的大小:http://docs.mongodb.org/manual/faq/indexes/#what-happens-if-an-index-does-not-fit-into-ram 如果超过了,一个是可能你的Index设计的不科学,还一个是你的内存太小了。这个时候无论什么数据库都会陷入窘境吧

再来说你的查询是如何优化的,当然这就涉及到了你的Document是如何设计的,如果嵌套过多的话性能必然也会受到影响

总之,如果你觉得MongoDB的优势在于热数据内存持久化的话,那么我觉得方向就不对。难道MySQL没有这个功能吗?

我个人认为MongoDB最大的优势之一就在于Document based design,那么你的数据模型可以尽可能的去模拟现实的情况,而不是表与表之间做关联。
还有优势就在于无比简单的shard和replica设置,现对于MySQL的M/S不知道简单了多少,当然如果复杂也可以很复杂

就说那么多吧。我觉得现在的技术发展并不是拼硬件,而是拼设计、理论,Hadoop的想法不也是把分布式系统放在“普通的机器”上么。SSD或者非SSD,完全就不应该成为衡量一个工具好与不好的标准。

退一万步来说,为什么访问量上来了以后你不在前面加Cache(如Redis)去缓存呢,这样可以减少直接读取数据库的次数。不管是不是MongoDB都应该这么做吧。
griffinqiu
2013-12-13 00:26:04 +08:00
对MongoDB没啥研究,最近一个项目用了下。中途遇到过几次麻烦,一般加Sharding都能解决些问题,自动的Balance很慢。
MongoDB的更新是通过内存文件映射,默认5分钟或者1分钟同步到硬盘一次,如果业务对写要求高可用降低这个值,或者加Sharding。最后再考虑加SSD。
查询方面,MongoDB是文档数据库,意味着不需要那么多的关联查询。而这里的确MySQL更需要SSD。
还有就是要考虑冷(未加载在内存的数据)热数据的问题,随机的频繁对大数据查询对Mongo性能影响大。
griffinqiu
2013-12-13 00:28:52 +08:00
@ritksm MySQL没有你说的那个功能,用MySQL那个功能一般都是靠Memcache来实现。
griffinqiu
2013-12-13 00:31:43 +08:00
@xzl 我们之前就被搞过,随机冷数据读取导致Page Fault在二三十分钟都降不下去...
griffinqiu
2013-12-13 00:33:33 +08:00
这个时候看起来的确很坑,io、负载啥的都很低。最后瓶颈锁在了netstat。
zeinima
2013-12-13 02:36:41 +08:00
你知道SSD多贵么?
cyr1l
2013-12-13 03:16:35 +08:00
我也遇到Mongodb的性能问题, 明天调一下index,看看能优化多少.
likexian
2013-12-13 09:56:46 +08:00
看吧,你一说mongodb不行,他们就会说不是mongodb不行,是你不会用
看吧,你一说mongodb这个方面不好,他们就会说mysql更不好,连xxx都不支持

所有讨论mongodb的时候,mongo方都是这个思路,不信多看看,懒得辨
xzl
2013-12-14 16:59:54 +08:00
@likexian 呵呵 那你说如题主 不服来辩?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/92935

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX