Angenommen, Sie sind gerade auf dell.com und kaufen einen Server, auf dem Ihre MongoDB-Datenbank für Ihr kleines Startup ausgeführt wird. Sie müssen buchstäblich Zehntausende von Schreib- und Lesevorgängen pro Minute ausführen (aber kleine Objekte). Würden Sie für 2 Prozessoren gehen? Mehr in RAM investieren?
Ich habe gehört (korrigiere mich, wenn ich mich irre), dass MongoDB so gut wie möglich mit dem RAM umgeht und dann alles auf die Festplatte spült. In diesem Fall sollte ich in eine CPU mit einem großen L2-Cache investieren, wahrscheinlich> 40 GB RAM und ein Solid State Drive .. oder?
Wäre ich mit einem High-End-Server (ca. 11.309 USD, 2 teure Prozessoren, 96 GB RAM) oder zwei Servern (ca. 6.419 USD, 2 teure Prozessoren, 12 GB RAM) besser dran?
Geht es Dell gut oder haben Sie bessere Vorschläge? (Ich bin außerhalb der USA, auf Portugal)
Antworten:
Zunächst möchten Sie den Arbeitsspeicher aufbessern. Der RAM, den Sie benötigen, hängt von der Menge der gespeicherten Daten, der Anzahl der Sammlungen, den Indizes für diese Sammlungen, den Datenzugriffsmustern usw. ab. Viele Faktoren.
Das Wichtigste ist, genügend RAM zu haben, um Ihre Indizes im RAM zu halten. Andernfalls leidet Ihre Leistung dramatisch, da Ihre Server ständig ausgelastet sind, während Mongo Dateien mit Speicherzuordnung in den Arbeitsspeicher und aus dem Arbeitsspeicher verschiebt. Trotzdem haben wir keine Beeinträchtigung der Schreibgeschwindigkeit gesehen, aber alles andere ist so. Die Verarbeitung von Schreibvorgängen aus der Warteschlange, das Leeren von Daten, Speicherauszüge usw. ist dramatisch, sobald Ihre Indizes nicht mehr in den Arbeitsspeicher passen.
Es gibt also keine wirklich kurze Antwort. Seien Sie grundsätzlich schlau in Bezug auf Ihre Indizes. Verwenden Sie nur das, was Sie brauchen. Halten Sie Sammlungen klein, wenn Sie können (dh brechen Sie in mehrere auf, wo Sie können). Mit einer Kappe versehene Sammlungen sind auch interessant zu untersuchen.
quelle
Es ist sehr wichtig, eine 64-Bit-Maschine zu verwenden, nicht 32-Bit. http://blog.mongodb.org/post/137788967/32-bit-limitations
quelle
Mit MongoDB wollen Sie RAM. Und dann noch etwas RAM. RAM kaufen kann nicht schaden.
quelle
Wenn Sie im Stadium des Kaufs von Produktionshardware sind, muss die Anwendung, die Sie ausführen, bereits geschrieben sein, oder? Führen Sie die App auf der Hardware aus, über die Sie verfügen, und erfassen Sie die Messdaten. Ändern Sie nach und nach einige Komponenten und nehmen Sie mehr Metriken auf. Wenn Sie fertig sind, wissen Sie, welche Schwerpunkte für Ihre Anwendung und Ihr Szenario am wichtigsten sind.
quelle
Kaufen Sie zuerst so viel RAM wie möglich. Der zweite begrenzende Faktor ist die Plattengeschwindigkeit. RAID hilft. SSD hilft. Mehr Scherben helfen. Messen Sie den Durchsatz im Vergleich zur Festplatteneffizienz und den erforderlichen Antwortzeiten und entscheiden Sie dann, was im Rahmen Ihres Budgets zu tun ist.
quelle
Ich würde mich fragen, ob eine Linux-Cluster-Lösung eine bessere, billigere Alternative wäre.
Mit MongoDB können Sie Daten auf viele Server verteilen. Das wird mit einem, hupenden Server unmöglich sein.
Ich dachte, MongoDB sei einer der nächsten Schritte, nachdem ich herausgefunden hatte, dass die Bereitstellung einer relationalen Datenbank auf einem Honking-Server nicht gut genug skaliert werden konnte.
quelle
Zehntausende schreiben pro Minute ist nichts. Sie können mit vernünftiger Hardware 50.000 oder mehr Schreibvorgänge pro Sekunde erzielen. Die Hardware-Spezifikationen hängen wirklich davon ab, was Sie tun möchten. Generell ist neben einer ordentlichen CPU genügend RAM für große Datenbanken und ein schnelles IO-System wichtig ...
quelle
Es ist wichtig, vor dem Entwerfen Ihrer Hardware eine solide Grundlinie festzulegen. Erwarten Sie im Allgemeinen, dass diese Art von Fragen von erfahrenen mongoDB-Leuten gestellt wird, bevor jemand überhaupt in Betracht ziehen kann, Ihre Frage zu beantworten.
Aktuelle Anwendungsstatistiken (falls vorhanden)
Arbeitsbelastung durch Datenaufnahme
Abfragemuster und Leistungserwartungen
Erwartete Zugriffsmuster
quelle