MongoDB множественный доступ к одному серверу - PullRequest
0 голосов
/ 12 февраля 2019

Я использую сервер MongoDB локально, на виртуальной машине Windows.У меня есть данные, поступающие с разных растений.Я думаю, что лучший и самый простой выбор - создать БД для каждого завода.Точнее, для каждого завода мне нужно создать 3 разных БД для размещения разных типов данных (исходные данные, обработанные данные, проанализированные данные) одного и того же завода.На самом деле я создал 3 БД для каждого завода, связанных с одним и тем же IP-адресом и портом, которые находятся на ВМ, где работает служба MongoDB.Папка данных БД находится на сервере.Я изменил файл mongod.cfg следующим образом:

systemLog:
    destination: file
    path: \\server\db\MongoDB\Plants\log\mongod.log
storage:
    dbPath: \\server\db\MongoDB\Plants\data
net:
    bindIp: 127.0.0.1,192.168.5.20
    port: 3415

Я запускаю несколько сценариев на Python, обращаясь к различным БД, читая и записывая, иногда с разных компьютеров в одной локальной сети,Все сценарии работают круглосуточно, но запускаются раз в час, когда поступают новые данные.Я видел, что иногда, возможно, когда один сценарий выполняется одновременно с другим, выполнение становится очень медленным, а иногда возникает ошибка тайм-аута, останавливая все выполнение.Для устранения ошибки необходимо перезапустить службу MongoDB.

Какое самое простое и быстрое решение, чтобы избежать этой проблемы?Я слышал о наборе осколков и реплик, но я не эксперт, и я не знаю, являются ли это лучшим решением для меня.Они лучший выбор?Как я могу настроить службу в этом случае?

Спасибо, кто мог мне помочь.

1 Ответ

0 голосов
/ 12 февраля 2019

сначала попытайтесь определить, что вызывает ошибку, она может быть медленной, потому что ваши скрипты выполняют какой-то поиск, и вам может потребоваться выполнить индексацию.

также обратите внимание на индексы, чтобы они не были больше, чем ваша RAMmemory

попробуйте увеличить объем оперативной памяти, которую имеет ваша БД mongo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...