搜尋

首頁  >  問答  >  主體

node.js - mongodb增加副本节点,startup一段时间后新节点就满内存崩溃了

当前副本集状态:
已经有两个节点,一主一从,storageSize:16G。

遇到的问题:
通过rs.add()增加新副本集节点,rs.status()显示新节点已增加,stateStr为“STARTUP2”。一段时间后,新节点mongo进程崩溃,经查物理内存被耗尽。
除了换更大内存的机器,有什么方式能解决这个问题吗?

PHP中文网PHP中文网2871 天前656

全部回覆(3)我來回復

  • 怪我咯

    怪我咯2017-04-17 15:49:50

    1、從描述的情況來看,是initial sync遇到效能問題;STARTUP2表示節點在做initial sync;

    2、所以可以考慮,優化initial sync;如果沒有這樣做的話,可以考慮先把資料庫備份/還原到待加入的節點,然後再加入該節點,從而減少sync的資料;

    3、備份/還原有多少種方式,可以選擇熟悉的方式進行;Ops Manager其實是很好的選擇。

    供參考。

    Love MongoDB! Have Fun!

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:49:50

    不知道機器配置是多少,是不是確定是被系統的OOM killer幹掉的?如果是oom killer,可以加入swap來避免這個問題。
    另外@bguo 已經提到可以嘗試從備份來還原一個結點,具體做法請參考文件。但即使這樣,一定量的swap還是建議要有。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:49:50

    應該先用devtool之類的工具去定位下,Profiles->Take Heap Snapshot,如果有大量字符處理,應該考慮下是否有字符串因為放到了上級的作用域而沒有被釋放掉

    回覆
    0
  • 取消回覆