2019年7月31日
摘要: 最近接到多个MongoDB内存方面的线上case及社区问题咨询,主要集中在: 为什么我的 MongoDB 使用了 XX GB 内存? 一个机器上部署多个 Mongod 实例/进程,WiredTiger cache 应该如何配置? MongoDB 是否应该使用 SWAP 空间来降低内存压力? Mong 阅读全文
posted @ 2019-07-31 17:59 xibuhaohao 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 转载自勤奋的小青蛙 mongodb占用内存非常高,这是因为官方为了提升存储的效率,设计就这么设计的。 但是大部分的个人开发者所购买的服务器内存并没有那么大,所以,我们需要配置下MongoDB的内存缓存大小,不然mongodb会占用非常多。 官方的配置缓存项处文档是这么解释的: WiredTiger 阅读全文
posted @ 2019-07-31 17:55 xibuhaohao 阅读(1022) 评论(0) 推荐(0) 编辑
摘要: 1.1 在独立服务器上面建立索引 在独立服务器上面创建索引,可以在空闲时间于后台建立索引。 在后台建立索引,可利用background:true参数运行 >db.foo.ensureIndex({"somefield":1,{:background":true}) 1、任何类型的索引均可在后台完成建 阅读全文
posted @ 2019-07-31 17:06 xibuhaohao 阅读(921) 评论(0) 推荐(0) 编辑
摘要: 1.1 系统分析器作用 可以利用系统分析器(system profiler)来查找耗时过长的操作。 系统分析器可记录特殊集合system.profile中的操作,并提供大量有关耗时长的操作信息,但相应的,会导致数据库性能有所下降。因此,我们可能只需要定期打开分析器来获取信息即可。如系统已经负载过重, 阅读全文
posted @ 2019-07-31 13:43 xibuhaohao 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 1.1 查看正在进行的操作 使用db.currentOp()函数: >db.currentOp() 1、opid 这是操作的唯一标识符,可以通过它来终止操作 2、active 表示操作是否正在进行。如果为false表示操作已交出或正在等其他操作交出锁 3、secs_running 表示该操作已经执行 阅读全文
posted @ 2019-07-31 11:19 xibuhaohao 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 1.1 特大快形成 如果用date字段作为片键,集合中date是一个日期字符串,如:year/month/day,也就是说,mongoDB一天创建一个块。因块内所有文档的片键一样,因此这些块是不可拆分的。如果块超出了config.settings中设置的最大块大小,那么均衡器就无法移动这个块了。 这 阅读全文
posted @ 2019-07-31 09:25 xibuhaohao 阅读(330) 评论(0) 推荐(0) 编辑