Warnung

Warnung

Einfache Frage: Ist es dumm, MongoDB und Elasticsearch auf denselben Knoten innerhalb eines Clusters von drei auszuführen, wenn Sie den Speicherhunger von MongoDB mithilfe von Cgroups decken und den Aspekt gleichzeitiger E/A ignorieren?

Antwort1

Warnung

Die Frage enthält kaum Angaben zu benötigten IOPS, RAM und CPU, daher wird auch die Antwort diesbezüglich nicht allzu viel enthalten.


Generell ist es nicht ratsam, zwei IO/CPU/RAM-intensive Workloads auf demselben Knoten zu platzieren, aber ich habe Erfahrung mit der Arbeit an Elasticsearch-Instanzen, die Hosts mit anderen Datenbanken (wie Redis und PostgreSQL) teilen, die durch Cgroups/LXC-Container getrennt sind. Es ist möglich und funktioniert gut genug für eine Produktionsworkload.bei ausreichenden Rohstoffen. Es ist ganz einfach, die IO- und RAM-Nutzung mithilfe von Standardsystemtools wie vmstat, sar, iotop usw. im Auge zu behalten. Sie benötigen ein paar tausend potenzielle IOPS, ein paar Dutzend GB RAM und etwa ein Dutzend CPU-Kerne, aber es ist eine vernünftige Architektur, wenn Sie sich einige leistungsfähige Host-Maschinen leisten können. Wenn Sie sich andererseits ausreichend leistungsfähige Hosts leisten können (z. B. i2.4xls in Amazon-Sprache), können Sie sich einen größeren Pool kleinerer Instanzen (i2.xls) leisten und Elasticsearch und MongoDB getrennt voneinander ausführen und dann in Zukunft einen Teil eines besseren Systemdesigns hochskalieren.

verwandte Informationen