PyMongo поднимает [errno 49] не может назначить запрошенный адрес после большого количества запросов

у меня естьMongoDB коллекция с> 1 000 000 документов. Я выполняю начальный.find({ my_query }) вернуть подмножество этих документов (~ 25 000 документов), которые я затем положил вlist объект.

Затем я зацикливаюсь на каждом из объектов, анализирую некоторые значения из возвращенного документа в списке и выполняю дополнительный запрос, используя эти проанализированные значения через код:

def _perform_queries(query):
    conn = pymongo.MongoClient('mongodb://localhost:27017')
    try:
        coll = conn.databases['race_results']
        races = coll.find(query).sort("date", -1)
    except BaseException, err:
        print('An error occured in runner query: %s\n' % err)
    finally:
        conn.close()
        return races

В этом случае мойquery словарь это:

{"$and": [{"opponents":
    {"$elemMatch": {"$and": [
        {"runner.name": name},
        {"runner.jockey": jockey}
    ]}}},
    {"summary.dist": "1"}
]}

Вот моя проблема. Я создал индекс наopponents.runner.name а такжеopponents.runner.jockey, Это делает запросы действительно очень быстрыми. Тем не менее, после примерно 10000 запросов подряд,PyMongo поднимает исключение:

pymongo.errors.AutoReconnect: [Errno 49] Can't assign requested address

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

Кто-нибудь знает, почему[Errno 49] can't assign requested address может происходить? Я видел несколько других вопросов, связанных сcan't assign requested address но не по отношению кPyMongo и там ответы никуда меня не ведут.

ОБНОВИТЬ:

Следуя совету Сержа ниже, вот выводulimit -a:

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 2560
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 709
virtual memory          (kbytes, -v) unlimited

Мой MongoDB работает на OS X Yosemite.

Ответы на вопрос(1)

Ваш ответ на вопрос