最近接到多个 MongoDB 内存方面的线上 case 及社区问题咨询, 主要集中在:
为什么我的 MongoDB 使用了 XX GB 内存?
一个机器上部署多个 Mongod 实例 / 进程, WiredTiger cache 应该如何配置?
MongoDB 是否应该使用 SWAP 空间来降低内存压力?
MongoDB 内存用在哪?
Mongod 进程启动后, 除了跟普通进程一样, 加载 binary, 依赖的各种 library 到内存, 其作为一个 DBMS, 还需要负责客户端连接管理, 请求处理, 数据库元数据, 存储引擎等很多工作, 这些工作都涉及内存的分配与释放, 默认情况下, MongoDB 使用 Google tcmalloc 作为内存分配器, 内存占用的大头主要是「存储引擎」与 「客户端连接及请求的处理」.
存储引擎 Cache
MongoDB 3.2 及以后, 默认使用
来源: https://yq.aliyun.com/articles/716024