Требования к памяти / использование для MongoDB, Riak и HyperTable (или HBase)
Я оценил большинство решений 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 ответ
Я использовал mongodb и hbase в производстве, так что я могу прокомментировать их.
Mongodb не имеет возможности ограничить использование памяти, он использует максимально возможное количество памяти. Итак, в основном, чем больше памяти у вас лучше для mongodb. И это всегда хорошая идея поставить Mongodb на отдельной машине.
Для hbase проблема не так проста, поскольку состоит из лежащих в основе сервисов. сервисы: namenode, datanode, zookeeper-server, hmaster, regionserver (и если вы собираетесь использовать mapreduce, вам понадобятся jobtracker и tasktraker). namenode, zookeeper-server и hmaster не нужно слишком много. но тогда вам понадобится хороший баланс ввода / вывода для датододы и лучше оперативная память для сервера региона. Никогда не стоит помещать эти службы в одну и ту же коробку (даже если они виртуальные из-за потребностей io).
И последнее, но не менее важное остерегайтесь обмена! своп является врагом как для mongodb, так и для hbase.