Windows下使用WSRM限制MongoDB内存
有个项目用到了MongoDB,我们是在WINDOWS 2008 64位环境下部署的,为啥不部署到linux下面呢,我们没那么多服务器,只能将就一下了。
大家都知道Mongodb吃内存太厉害了,如果不重启服务,内存一直蹭蹭地往上涨,定时重启MongoDB服务是能暂时的收回内存,但这也不是长久之计。如果不去限制MongoDB的内存那么系统有多少内存都能被它消耗掉,我们的服务器上还有IIS, SQL SERVER, Redis等其他服务,不能将内存全部分配给Mongodb使用,怎样限制MongoDB的内存呢?
为了解决这个问题,我发现Windows 2008自带的“Windows 系统资源管理器”很好用,可以完美的解决这个问题。我将配置的方法一步一步的记下来,为了以后查询起来也方便。
1、安装 Windows 系统资源管理器
打开:开始 -- 管理工具 -- 服务器管理器
选择“功能” -- 添加功能 -- 勾选 Windows 系统资管理器
在弹出的窗口点击“添加必须的功能”
下一步 --- 安装
稍微等待1分钟左右 Windows 系统资管理器就安装好了
打开 Windows 系统资管理器
选择 管理此计算机 --- 连接
在资源分配策略上右键 -- 新建资源分配策略
随便填写个名字,例如 Mongodb Limit ,然后点击下面那个添加按钮
在常规窗口下拉 进程匹配条件 -- 新建
在弹出的窗口中继续点击添加
因为我服务器上的Mongodb注册成了服务,所以在这里选择: 已注册的服务 ,再点击右边的“选择“按钮
在众多服务中找到mongodb服务
一路”确定“
回到资源分配的常规页面,这里我们将CPU限制为40%
切换到”内存“ 页
为了测试,我们将内存限制为1000M
设置好了就可以在这里看到我们的新策略
为了让新策略起效,我们还需要点击几下鼠标,完成最后的操作:
在 资源管理器上点击右键展开菜单,选择”属性“
将日历修改为禁用,然后选择当前资源分配策略为我们新建的 MongodbLimit
确定后发现在MongodbLimit 后面多了个 {管理} 字样,说明我们的设置其效果了。
我们重启mongodb服务,发现最大内存限制在了1000MB附近
终于不必再担心服务器内存不够了,可以安稳的睡个好觉了。