为什么mongodb虚拟内存变得这么大

win*_*ndy 4 mongodb

我刚刚在我的 linuxOS 中编译了 MongoDB 并且没有将任何数据插入到数据库中。

虚拟内存变得非常大,大约40G。

ps aux|grep mongod

mongodb 176574 0.0 0.0 423784 39008 pts/308 Sl 09:00 0:00 mongod

为什么虚拟内存这么大,我还没有插入任何数据呢?

小智 5

MongoDB 使用内存映射文件来提高性能,我将在这里向您指出我对此的更长回答,但本质上,大量的虚拟内存使用无需担心。在虚拟内存的情况下,您会看到日志的双重使用,但是这听起来没有那么严重,因为在更新之前实际上不会使用空间。尽管在您启动时可能为空,但它仍被操作系统标记为正在使用。

这些方面都是 MongoDB 如何使用内存子系统提供性能的元素,类似于它如何预分配磁盘空间以确保这些资源被标记并准备好在它们发生时为您的连接提供服务。

MongoDB 的存储层上有一个有趣的演示文稿,它解释了如何管理和分配存储,在大多数情况下,这往往会增加这些数字。