当前副本集状态:
已经有两个节点,一主一从,storageSize:16G。
遇到的问题:
通过rs.add()增加新副本集节点,rs.status()显示新节点已增加,stateStr为“STARTUP2”。一段时间后,新节点mongo进程崩溃,经查物理内存被耗尽。
除了换更大内存的机器,有什么方式能解决这个问题吗?
怪我咯2017-04-17 15:49:50
1. 설명된 상황으로 판단하면 초기 동기화에서 성능 문제가 발생합니다. STARTUP2는 노드가 초기 동기화를 수행 중임을 나타냅니다.
2. 따라서 초기 동기화를 최적화하는 것을 고려할 수 있습니다. 아직 수행하지 않은 경우 추가할 노드에 데이터베이스를 백업/복원한 다음 노드를 추가하여 동기화 데이터를 줄이는 것을 고려할 수 있습니다. >3. 백업/복원 방법은 다양합니다. 익숙한 방법을 선택하는 것이 실제로는 좋은 선택입니다.
참고로.
MongoDB를 사랑해주세요! 재미있게 보내세요!
巴扎黑2017-04-17 15:49:50
머신 구성이 무엇인지 모르겠습니다. 시스템의 OOM 킬러에 의해 종료된 것이 확실합니까? OOM 킬러라면 스왑을 추가하여 이 문제를 피할 수 있습니다.
또한, @bguo는 이미 백업에서 노드를 복원할 수 있다고 언급했습니다. 구체적인 방법은 문서를 참조하세요. 하지만 그럼에도 불구하고 일정량의 스왑은 여전히 권장됩니다.
巴扎黑2017-04-17 15:49:50
먼저 devtool 등의 도구를 사용해 찾아야 합니다. Profiles->Take Heap Snapshot
많은 문자를 처리하는 경우 상위 범위에 배치되어 해제되지 않은 문자열이 있는지 고려해야 합니다.