Требования к памяти / использование для 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 не нужно слишком много. но тогда вам понадобится хороший баланс ввода-вывода/оперативной памяти для datanode и Лучшая оперативная память для region server. Это никогда не хорошая идея, чтобы поместить эти службы на том же поле (даже если они являются виртуальными из-за потребностей ввода-вывода).
И последнее, но не в последнюю очередь остерегайтесь свопа! своп-враг как для mongodb, так и для hbase.
Comments