Простой вопрос: глупо ли запускать mongodb и elasticsearch на одних и тех же узлах в кластере из трех, если вы заботитесь о голоде памяти mongodb с помощью cgroups и игнорируете аспект параллельного io?
Вопрос прост в отношении таких фактов, как необходимые IOPS, ОЗУ и ЦП, поэтому ответ будет таким же.
Вообще говоря, размещать две рабочие нагрузки с интенсивным вводом-выводом / ЦП / ОЗУ на один узел - это плохо, но у меня есть опыт работы с экземплярами Elasticsearch, которые совместно используют хосты с другими базами данных (например, Redis и PostgreSQL), которые разделены контейнерами cgroups / LXC. Это можно сделать, причем достаточно хорошо для производственной нагрузки, учитывая достаточно сырых ресурсов. Это простой вопрос - следить за использованием ввода-вывода и ОЗУ с помощью стандартных системных инструментов, таких как vmstat, sar, iotop и т. Д. И т. Д. И т. Д. Вам понадобится потенциал нескольких тысяч операций ввода-вывода в секунду, несколько десятков ГБ ОЗУ и около дюжины. Ядра ЦП, но это разумная архитектура, если вы можете позволить себе существенные хост-машины. Опять же, если вы можете позволить себе достаточно солидные хосты (например, i2.4xls на языке Amazon), тогда вы можете позволить себе больший пул меньших экземпляров (i2.xls) и запускать Elasticsearch и MongoDB отдельно друг от друга, а затем иметь возможность для увеличения масштабов в будущем части улучшенного системного дизайна.