【发布时间】:2016-08-14 10:45:00
【问题描述】:
我在 Windows server 2012 上使用 Mongodb 已经两年多了。自上次更新以来,一些奇怪的问题开始发生,最终导致整个 RAM 内存的使用。
我为Mongodb配置的服务如下:
logpath=d:\data\log\mongod.log
dbpath=d:\data\db
storageEngine=wiredTiger
rest=true
#override port
port=27017
#configsvr = true
shardsvr = true
为了限制缓存内存使用,我添加了以下行:
wiredTigerCacheSizeGB=10
这就是奇怪的事情开始发生的地方。当我检查任务管理器时,它说现在 Mongodb 真的被限制为 10GB,正如我在服务中定义的那样,但它实际上使用了超过 10GB 的空间。
在第一张图片中,您可以看到按 RAM 消耗排序的内存消耗
这种疯狂的消耗导致我正在运行的脚本失败,即使是最基本的脚本,即使我只运行像'count'或'distinct'这样的简单查询,我相信这是内存的直接结果消耗。
当我检查日志文件时,我看到有许多打开的连接,即使会话结束,它也表明仍然打开了相同数量的连接:
所以最后我有两个主要问题: 1. 有没有办法在不降级MongoDB版本的情况下解决这个问题? 2. 配置文件看起来对吗?一切都是必要的吗?
【问题讨论】:
-
当您包含新的连接发现并更改问题时,您应该打开一个新问题,而不是更改您的问题并取消接受答案。 1)您需要指定涉及的MongoDB版本。即从版本升级。关于连接,它是一个连接池,您需要包括打开连接的方式。即驱动程序语言和版本。 2) 见Config Options。取决于您的部署用例,您很可能不需要
shardsvr和rest。
标签: mongodb server windows-services windows-server-2012 production-environment