У меня есть два рабочих сервера под управлением Windows Server 2012 R2. Как первичный и вторичный сервер, они используются для сценария перехода на другой ресурс, где, если он терпит неудачу, другой принимает нагрузку.Репликация MongoDB WIndows Проблема с памятью
Мое приложение использует репликацию MongoDB. У меня 3 экземпляра. Первичный и арбитр (который я собираюсь переместить на другой сервер, это всего лишь временный souliton) и вторичный узел на вторичном сервере.
Через некоторое время потребление ОЗУ становится очень высоким на обоих серверах. MongoDB берет всю доступную оперативную память и не выпускает ее. Я заметил это поведение только тогда, когда MongoDB работает в реплике.
Я провел некоторое исследование и выяснил, что невозможно ограничить использование ОЗУ самого процесса mongod. Я немного скептически отношусь к MongoDB, используя всю оперативную память.
Пожалуйста, поделитесь своими впечатлениями, мыслями или идеями о том, как ограничить использование ОЗУ приложением mongodb на моем сервере Windows.
rs.status()"set": "XXXXXX",
"date": ISODate("2015-03-03T13:35:39.000Z"),
"myState": 1,
"members": [
{
"_id": 1,
"name": "Server1:3000",
"health": 1,
"state": 1,
"stateStr": "PRIMARY",
"uptime": 67557,
"optime": Timestamp(1425389739,
19),
"optimeDate": ISODate("2015-03-03T13:35:39.000Z"),
"electionTime": Timestamp(1425322202,
1),
"electionDate": ISODate("2015-03-02T18:50:02.000Z"),
"self": true
},
{
"_id": 2,
"name": "Abritrer1:3001",
"health": 1,
"state": 7,
"stateStr": "ARBITER",
"uptime": 67547,
"lastHeartbeat": ISODate("2015-03-03T13:35:38.000Z"),
"lastHeartbeatRecv": ISODate("2015-03-03T13:35:39.000Z"),
"pingMs": 0
},
{
"_id": 3,
"name": "Server2:3000",
"health": 1,
"state": 2,
"stateStr": "SECONDARY",
"uptime": 67542,
"optime": Timestamp(1425389737,
26),
"optimeDate": ISODate("2015-03-03T13:35:37.000Z"),
"lastHeartbeat": ISODate("2015-03-03T13:35:37.000Z"),
"lastHeartbeatRecv": ISODate("2015-03-03T13:35:38.000Z"),
"pingMs": 1,
"syncingTo": "Server1:3000"
}
],
"ok": 1
}
Вы посмотрели, куда идет память? Можете ли вы разместить подкомплекс 'mem'' db.serverStatus() '? Кроме того, есть ли что-либо в журналах, касающихся производительности?Записанные медленные запросы или длинные таймауты? – wdberkeley
Hello @wdberkeley. Здесь MEM часть db.serverStatus() ' "MEM": { "биты": 64, "резиденты": 956, "виртуальный": 91003, "поддерживается": правда, «отображается »: 45402, « mappedWithJournal »: 90804' Нет, я не мог найти ничего в журналах относительно производительности или зарегистрированных медленных запросов и времени очистки. –