我使用mongodb只插入文档。没有为我使用的集合创建索引。但是我看到Mongodb使用的内存很高。机器有20GB的RAM,完全使用。我想知道原因,这是正常的吗?
答案 0 :(得分:3)
有关MongoDB如何使用存储和内存的精彩讨论:
http://docs.mongodb.org/manual/faq/storage/
具体到你的情况,Mongo内存映射数据和索引所在的文件(默认情况下是/ data / db目录中的文件),这意味着文件被映射到操作系统的虚拟地址空间,然后每当MongoDB访问时页面(文件的任何部分)该页面将被拉入RAM并且它将保持在那里直到使用操作系统可用于mongod进程的所有RAM(此时最近最少使用的页面将被换出RAM)。
您正在插入数据,因此您正在写入数据文件 - 您正在编写的那些页面需要位于RAM中(mongo写入文件,但由于它们是内存映射,因此它与内存交互,就像它的磁盘存储一样) 。如果mongod使用20GB + RAM意味着你的数据加上索引(加上其他东西的开销)是20GB或更多。