首页 > 代码库 > Windows下使用WSRM限制MongoDB内存

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附近

技术分享

 

终于不必再担心服务器内存不够了,可以安稳的睡个好觉了。

 

Windows下使用WSRM限制MongoDB内存