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

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

----MongoDB 如何使用内存? 为什么内存满了?//---- http://

最近接到多个MongoDB内存方面的线上case及社区问题咨询 , 主要集中在:

  • 为什么我的 MongoDB 使用了 XX GB 内存?

  • 一个机器上部署多个 Mongod 实例/进程 , WiredTiger cache 应该如何配置?

  • MongoDB 是否应该使用 SWAP 空间来降低内存压力?

MongoDB 内存用在哪?

Mongod 进程启动后 , 除了跟普通进程一样 , 加载 binary、依赖的各种library 到内存 , 其作为一个DBMS , 还需要负责客户端连接管理 , 请求处理 , 数据库元数据、存储引擎等很多工作 , 这些工作都涉及内存的分配与释放 , 默认情况下 , MongoDB 使用 Google tcmalloc 作为内存分配器 , 内存占用的大头主要是「存储引擎」与 「客户端连接及请求的处理」 。

推荐阅读