MongoDB 如何使用内存? 为什么内存满了?( 八 )

是否开启SWAP , 实际上是在「好死」与「赖活着」的选择 , 个人觉得 , 对于一些重要的业务场景来说 , 首先应该为数据库规划足够的内存 , 当内存不足时 , 「及时调整扩容」比「不可控的慢」更好 。

其他

  • 尽量减少内存排序的场景 , 内存排序一般需要更多的临时内存

  • 主备节点配置差距不要过大 , 备节点会维护一个buffer(默认最大256MB)用于存储拉取到oplog , 后台从buffer里取oplog不断重放 , 当备同步慢的时候 , 这个buffer会持续使用最大内存 。

  • 控制集合及索引的数量 , 减少databse管理元数据的内存开销;集合、索引太多 , 元数据内存开销是一方面的影响 , 更多的会影响启动加载的效率、以及运行时的性能 。

作者:张友东

阅读原文

推荐阅读