吐槽一下MongoDB,最近在群里经常会讨论到Mongodb,又想起曾经运维它(2.0.4)的苦逼日子,在这里吐吐槽,也留一记印象:
成都网站制作、成都做网站、外贸营销网站建设介绍好的网站是理念、设计和技术的结合。成都创新互联公司拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。
1.没有root专有连接,当Mongodb连接满的话只能多连几次碰碰运气了,怪不得也遇到过使用mongos+replicatset的用法;如果使用Javaclient的话可以设置connectionsPerHost(10)和threadsAllowedToBlockForConnectionMultiplier(5)
2.全局锁 VS读写分离;在2.2出来之前Mongodb的读写分离其实有点摆设的意思,怎么说呢,在secondary读的压力大时也阻塞oplog的写导致主从延迟进而Out of sync;或者复制也会阻塞从库的读,直到2.2才把这个问题解决;
3.Mongos内存泄露,不知道现在解决了没,当时就是自动脚本重启
4.Query Optimizer太傻了;有覆盖索引count(*)不走index cover scan而走table scan
5.写压力翻番:由于JournalLog和oplog分离,一个replicaset的master一个写会产生3份(经过压缩等优化貌似是2.5倍),对于IO bound型而不能关JounalLog调整flushinterval效果明显
6.Rename collection会crash mongod
7.还记得刚接手mongodb的时候不小心removeshard(计算下时间需要N天),还好及时停止draining了
8.需要学习OS内存,缓存管理
9....
吐槽归吐槽,当初运维Mongodb的时候肯定有很多不成熟的地方,如果要用还是敢用,三个字:看场景