有個項目用到了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附近

終於不必再擔心服務器內存不夠了,可以安穩的睡個好覺了。
