MongoDB против производительности Couchbase на одном узле

Я делаю POC для хранилища данных документов, поэтому для этого я выбрал MongoDB и CouchBase для оценки.

Подробная информация об окружающей среде приведена ниже.

Машина: Centos 6.7, 2-ядерный ЦП, МГц ЦП: 2494.078, Оперативная память: 7 ГБ (6 ГБ свободно)

MongoDB db версии v3.2.0 с конфигурацией по умолчанию

Версия CouchBase: 4.1.0-5005 Enterprise Edition (ОЗУ кластера: 3 ГБ, ОЗУ сегмента: 1 ГБ)

Размер документа: 326 B

Ниже приводится результат POC

+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+
|  Operation   | insert (in 10 batch each bacth is of 100K ) | select query | select query | select query | select query | select query | range query | range query |
+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+
| Record Count | 1000K                                       | 0            | 100          | 33k          | 140k         | 334k         | 114k        | 460k        |
| Mongo        | 99 sec                                      | 568ms        | 792ms        | 1500ms       | 3800ms       | 7800ms       | -           | 15387ms     |
| CouchBase    | 370 sec                                     | 8ms          | 250ms        | 6700ms       | 28000ms      | 69000ms      | 28644ms     | -           |
+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+

Клиент: я использовал JAVA sdk и данные Spring.

Существует большая разница в производительности couchbase и mongodb на одном узле. Есть ли какие-либо параметры конфигурации для повышения производительности дивана?


person Vipul    schedule 13.01.2016    source источник


Ответы (3)


Похоже, что текущая версия Spring Data MongoDB использует WriteConcern.UNACKNOWLEGED - он запустил и забыл. Вы должны включить WriteResultChecking.EXCEPTION или использовать WriteConcern.ACKNOWLEDGED.

http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.mongo-3.write-concern

person Shane    schedule 13.01.2016
comment
Привет @Shane с WriteConcern.ACKNOWLEGED mongodb потребовалось 213 мс для записи 1 миллиона записей. - person Vipul; 14.01.2016

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

Couchbase на одном узле - это не то, что я бы когда-либо запускал в производстве, узлы minium 3, поэтому, если у вас есть время, увеличение количества узлов может дать вам более значимые цифры

person Ian    schedule 13.01.2016
comment
Нет, у меня не заканчивается память ведра. Да, я знаю, что 2 ядра процессора - это низкая сторона, но тот же тест на mongo дает мне высокую пропускную способность. Может, попробую с большим CPU. Можете ли вы сказать мне, сколько операций в секунду вы получаете с 3 узлами? Было бы полезно, если бы вы также делились деталями окружающей среды. Спасибо @lan - person Vipul; 14.01.2016
comment
Мой производственный кластер довольно большой, 10 узлов, 8 процессоров на узел. Он может обрабатывать 200 000+ транзакций в секунду при использовании параметров устойчивости: запись на диск 0, ожидание реплики 0. Вы смотрели, как использовать ycsb для запуска тестов? См. Мою запись в блоге embracingnosql.wordpress.com/2015/09/28/ - person Ian; 14.01.2016

Если у вас доступно 6 ГБ памяти, вы можете увеличить объем памяти, выделенной для вашей корзины. В MongoDB 3.2 WiredTiger будет использовать 60% памяти минус 1 ГБ. Для 7 ГБ это от 2,6 до 3,2 ГБ (я не уверен, составляет ли это 60% от доступного или 60% от общего объема). Возможно, сконфигурируйте свое ведро в соответствии с этим.

person Shane    schedule 13.01.2016
comment
Я увеличил размер сегмента до 3 ГБ и повторно запустил тест, но большой разницы нет. - person Vipul; 14.01.2016