Требования к памяти / использование для MongoDB, Riak и HyperTable (или HBase) - PullRequest
2 голосов
/ 16 сентября 2011

Я оценил большинство решений NoSQL, и кажется, что использование комбинации MongoDB, Riak и HyperTable (или HBase) - это путь.

Какое минимальное требование для комфортной работы этих баз данных?

Допустим, если я разверну эти базы данных (MongoDB, Riak и HyperTable - или HBase) - и веб-сервер (например, nginx или Cherokee) и Java / GlassFish - ВСЕ на одном компьютере с FreeBSD с 32 ГБ ОЗУ. как они будут выступать? Обратите внимание, что благодаря такому подходу все 32 ГБ ОЗУ распределяются поровну между всеми приложениями. Для случая Java / GlassFish и HBase можно ограничить его, используя опцию «-Xmx0000m», но для этих баз данных они будут автоматически использовать всю память? Я понимаю, что MongoDB отображен в память - и так далее - что произойдет, когда они все будут бороться за память? (Я думаю, что можно ограничить использование памяти для MongoDB, Riak и HyperTable через параметр запуска, но как?)

В качестве альтернативы, является ли лучшим подходом развертывание в Solaris (или OpenIndiana) с виртуализацией контейнеров (или «зон») Solaris для ограничения каждого приложения, например, выделение 4 ГБ для каждой зоны MongoDB, Riak и HyperTable / HBase? При таком подходе все базы данных по сути работают только со средой 4 ГБ? Итак, для того, чтобы они работали правильно, какой минимальный комфортный объем оперативной памяти?

1 Ответ

2 голосов
/ 16 сентября 2011

Я использовал mongodb и hbase в производстве, так что я могу прокомментировать их.

Mongodb не имеет возможности ограничить использование памяти, он использует максимально возможное количество памяти. Итак, в основном, чем больше у вас памяти для mongodb. И всегда хорошая идея поставить mongodb на отдельную машину.

Для выпуска hbase это не так просто, так как он состоит из лежащих в основе сервисов. сервисы: namenode, datanode, zookeeper-server, hmaster, regionserver (и если вы собираетесь использовать mapreduce, вам понадобятся jobtracker и tasktraker). namenode, zookeeper-server и hmaster не нужно слишком много. но тогда вам понадобится хороший баланс ввода / вывода для датододы и лучше оперативная память для сервера региона. Никогда не стоит помещать эти службы в одну и ту же коробку (даже если они виртуальные из-за потребностей io).

И последнее, но не в последнюю очередь остерегайтесь обмена! swap - враг как для mongodb, так и для hbase.

...