2015-08-06 1 views
1

Я использую Mongodb как базу данных для проекта, и я отправляю 1000 запросов в секунду в mongodb. У меня было наблюдение, что запрос, стоящий впереди в очереди, работает быстрее, чем сравнение с запросом, который является последним в очереди. Я боюсь, что если зов к монгодбу увеличить, он будет потреблять больше времени. Я думаю, что это я могу управлять с помощью бассейн connection.If да, дайте мне знать, как мы увеличили размер пула не используя python.If не предложить мне любой другой альтернативыКак увеличить размер пула подключений для Mongodb с помощью python

Ниже приведены некоторые результаты, чтобы найти документы с поля snippetid, который я имел индекс

Некоторые запрос, которые посылают в начале

db.collection.find({'snippetid': '55a0466a414353801e4ff16a'}) 

Time Taken 0.00563097000122 

db.collection.find({'snippetid': '559417cd5217d572fa120a21'}) 

Time Taken 0.00330901145935 

Некоторые запрос, которые являются последними в очереди

db.collection.find({'snippetid': '55a4b1d45217d5e7609e19b2'}) 

Time Taken 1.95499396324 

db.collection.find({'snippetid': '55a059d5be98fa09168b63f9'}) 

Time Taken 1.96221590042 

ответ

4

Эй, вы можете увеличить размер пула в python, используя pymongo. Синтаксис

from pymongo import MongoClient 
client = MongoClient('host', port, maxPoolSize=200) 

Для более подробной информации проверить link

+0

спасибо за ваш ответ – 3ppps

2

Из документации PyMongo для MongoClient:

MaxPoolSize (по желанию): Максимальное количество соединений, что бассейн будет открыть одновременно. Если это установлено, операции будут блокироваться, если в пуле есть прекрасные соединения maxPoolSize. По умолчанию 100. Не может быть 0.

И дали подпись:

pymongo.mongo_client.MongoClient(
    host='localhost', port=27017, document_class=dict, 
    tz_aware=False, connect=True, **kwargs) 

Поэтому добавление maxPoolSize с нужным значением в пределах этого вызова будет установить размер пула соединений.

Отметьте, что «ничего не является бесплатным», и это происходит на понятной цене как на клиенте, так и на сервере для поддержания большого количества соединений. При высокой нагрузке на запрос вы можете посмотреть альтернативные методы обработки или, по крайней мере, сбалансировать нагрузку.

+0

Спасибо за ваш ответ – 3ppps

Смежные вопросы