Предупреждение

Предупреждение

Простой вопрос: глупо ли запускать mongodb и elasticsearch на одних и тех же узлах в кластере из трех, если вы решаете проблему нехватки памяти mongodb с помощью cgroups и игнорируете аспект параллельного ввода-вывода?

решение1

Предупреждение

Вопрос не содержит в себе фактов, таких как требуемые IOPS, ОЗУ и ЦП, поэтому ответ будет таким же.


Вообще говоря, плохо размещать две интенсивные рабочие нагрузки IO/CPU/RAM на одном узле, но у меня есть опыт работы с экземплярами Elasticsearch, которые делят хосты с другими базами данных (например, Redis и PostgreSQL), которые разделены контейнерами cgroups/LXC. Это можно сделать, и сделать это достаточно хорошо для рабочей нагрузки в производстве,при наличии достаточного количества сырьевых ресурсов. Это просто вопрос отслеживания использования ввода-вывода и оперативной памяти с помощью стандартных системных инструментов, таких как vmstat, sar, iotop и т. д. и т. п. Вам понадобится несколько тысяч IOPS-потенциала, несколько десятков ГБ оперативной памяти и около дюжины ядер ЦП, но это разумная архитектура, если вы можете позволить себе несколько существенных хост-машин. С другой стороны, если вы можете позволить себе достаточно существенные хосты (например, i2.4xls на языке Amazon), то вы можете позволить себе больший пул меньших экземпляров (i2.xls) и запускать Elasticsearch и MongoDB отдельно друг от друга, а затем иметь возможность масштабироваться в будущем как часть лучшего дизайна системы.

Связанный контент