mongodb内存映射存储引擎
mongodb默认存储引擎是memory-mapped。当mongod服务启动后,将所有数据文件映射到内存中。操作系统的任务是刷新数据到磁盘和管理页数据的输入输出。这种存储引擎有一下特性:
1.Mongodb代码中关于管理内存的代码非常精简。因为大部分工作是交由操作系统进行的。
2.mongodb服务进程使用的虚拟内存一般非常巨大,将超过整个数据集的大小。不必担心,因为操作系统将处理保持在内存中数据的数量。
3. MongoDB无法控制的数据写入到磁盘顺序,这将导致无法使用writeahead日志以提供单台服务器的持久性。目前mongodb正在研发替代存储引擎来解决这一问题。
4.32位操作系统的mongodb服务器每mongod实例最大的数据文件限制为2G。这是因为所有的数据都必须只使用32位寻址。
因此在mongod日志中,会有如下信息:
Mon May9 15:37:09 flushing mmap took 0msfor 8 files
Mon May9 15:38:09 flushing mmap took 1msfor 8 files
Mon May9 15:39:09 flushing mmap took 0msfor 8 files
Mon May9 15:40:09 flushing mmap took 0msfor 8 files
Mon May9 15:41:09 flushing mmap took 0msfor 8 files
Mon May9 15:42:09 flushing mmap took 0msfor 8 files
Mon May9 15:43:09 flushing mmap took 0msfor 8 files
Mon May9 15:44:09 flushing mmap took 0msfor 8 files
Mon May9 15:45:09 flushing mmap took 0msfor 8 files
Mon May9 15:46:09 flushing mmap took 0msfor 8 files
Mon May9 15:47:09 flushing mmap took 0msfor 8 files
Mon May9 15:48:09 flushing mmap took 1msfor 8 files
Mon May9 15:49:09 flushing mmap took 0msfor 8 files
Mon May9 15:50:09 flushing mmap took 0msfor 8 files
Mon May9 15:51:09 flushing mmap took 0msfor 8 files
页:
[1]