Я развернул версию mongodb 64 bit 2.x на экземпляре aws m1.large.
Я пытаюсь найти лучшую производительность, которую mongo может дать нам на aws в свете http://www.snailinaturtleneck.com/blog/tag/mongodb/ (и производительность чтения / записи mongodb и хостинга mongo в облаке )
Я создал одну базу данных с одной коллекцией, то есть пользователем, и вставил 100 000 записей / объект json (каждый размер объекта json равен 4 КБ), используя случайное число в качестве суффикса для «user-». Также создан индекс по идентификатору пользователя.
Далее, я настроил db profiler на ведение журнала медленных запросов, занимающих 20 мс или более. Я выполнил программу Java с 10 потоками. Каждый класс Java генерирует идентификатор пользователя со случайным числом и находит его в коллекции пользователей в бесконечном цикле. При такой нагрузке я наблюдал задержку в запросе / чтении до 60 мс.
Я также заметил, что, когда я запускаю меньшее количество потоков, скажем, 3 или 4 (при загрузке запроса для сбора пользователей 5 КБ в секунду, чтобы найти пользователей), тогда я не вижу задержки или менее 2 мс.
Мне не удалось понять, почему увеличение нагрузки по поиску пользователя в коллекции вызывает задержку. Я считаю, что mongo db может выполнять намного более параллельное чтение, чем то, что я пытаюсь, и не должно влиять на производительность как таковую.
Одна возможность, которую я предполагаю, будет: у mongo проблемы с производительностью, если в одной коллекции выполняются большие запросы, как в нашем случае, я ожидаю, что в одной коллекции будет от 10 до 20 000 запросов в секунду.
Мы будем признательны за ваши мысли / предложения.