mongodb 服务器将所有 db 文件映射到 RAM。随着数据库的规模越来越大,服务器将拥有一个高达 3G 字节的巨大页表。
服务器运行时有没有办法缩小它?
mongodb版本是2.0.4
mongodb 服务器将所有 db 文件映射到 RAM。随着数据库的规模越来越大,服务器将拥有一个高达 3G 字节的巨大页表。
服务器运行时有没有办法缩小它?
mongodb版本是2.0.4
Mongodb 将内存映射它创建的所有数据文件,以及日志文件(如果您正在使用日志)。没有办法防止这种情况发生。这意味着 MongoDB 进程的虚拟内存大小将始终大约是数据文件大小的两倍。
请注意,OS 内存管理系统将分页出未使用的 RAM 页面,因此进程的物理内存大小通常会远小于虚拟内存大小。
减小“mongod”进程的虚拟内存大小的唯一方法是减小 MongoDB 数据文件的大小。减小数据文件大小的唯一方法是使节点脱机并执行“修复”。
有关详细信息,请参见此处:- http://www.mongodb.org/display/DOCS/Excessive+Disk+Space#ExcessiveDiskSpace-RecoveringDeletedSpace
基本上,您要求执行 MongoDB 手册建议不要执行的操作:http: //docs.mongodb.org/manual/administration/ulimit/在此特定场景中。然而,推荐并不意味着需要,它只是一个指导方针。
这正是 MongoDB 的运行方式,除非您想尝试和测试不同的场景以及它们的工作方式,否则您必须接受这种方式。
您可能希望减少进程的已用内存。您可以使用调用setrlimit(2)系统调用的ulimit
bash 内置函数(在启动服务器之前,可能在某些/etc/rc.d/mongodb
脚本中)