Warum ist mongorestore schmerzhaft langsam?

8

Ich habe einen Dump von einem db gemacht, der nur eine Sammlung und zwei Indizes hat. Die Sammlung hatte rund 6,5 Millionen Dokumente. Als ich versuchte, es zu meiner Überraschung wiederherzustellen, war der Prozess sehr langsam. Einige Statistiken wie folgt:

%Vor%

Wie aus den obigen Daten abgeleitet werden kann, beträgt der Gesamtdump (in bson) ungefähr 1,3 Gigs. Und es dauert mongorestore eine enttäuschende 110 Sekunden, um 1% davon wiederherzustellen, die 13 MB ist.

Wenn jemand eine Erklärung dafür hat, lass es mich wissen. Ich wünschte, ich würde versehentlich etwas falsch machen, da diese Zahlen im Vergleich zu den Standards der Computer in diesem Jahrhundert zu langsam sind.

BEARBEITEN

Ich führte den Befehl erneut mit den folgenden zwei Optionen aus, in der Hoffnung, dass sie den Prozess beschleunigen würden:

%Vor%

Aber zu meiner Überraschung ist der Prozess jetzt langsamer! Hier sind einige der Statistiken.

%Vor%

Es dauert ungefähr 4 Minuten von 1% auf 2% zu gehen. Sicherlich stimmt hier etwas nicht.

    
VaidAbhishek 14.08.2013, 13:09
quelle

2 Antworten

8

Dies ist ein sehr alter Thread, aber ich hatte in letzter Zeit ein ähnliches Problem, möglicherweise aus einem anderen Grund, und kam auf diese Frage.

Wenn Sie Mongo in AWS ausführen, müssen Sie die richtigen Instanz- und Volumetypen verwenden.

T-type-Instanzen haben CPU-Credits, die bei der Ausführung eines großen mongorestore-Prozesses nicht mehr ausreichen. Ihre Wiederherstellung wird schnell beginnen und dann langsamer werden, um zu kriechen ... Es hört nie wirklich auf, aber es wird Tage dauern, bis Sie fertig sind.

Wenn Sie versuchen, mit magnetischem EBS-Volumen etwas Geld zu sparen, ist das auch keine gute Idee. SC1 ist besonders falsch, da es ähnliche Credits für Operationen pro Sekunde hat ... mongorestore wird alle Ihre IOP-Credits durchbrennen, egal wie viele Sie in Minuten haben, danach wird die Geschwindigkeit auf 3 Operationen pro Sekunde verringert und die Wiederherstellung kann dauern Wochen bis zum Ende.

Ich hoffe, das hilft jemandem.

    
grepe 24.05.2016 07:44
quelle
5

Leider sind diese Zahlen nicht ungewöhnlich. mongorestore auf eine Sammlung von 300 Millionen dauert Tage.

Sie haben grundsätzlich zwei Möglichkeiten.

Nehmen Sie zuerst die lang andauernde Wiederherstellung und führen Sie sie über Nacht aus:

%Vor%

Zweitens kopieren Sie die Dateien in Ihr Datenbankverzeichnis selbst (default / data / db) anstatt mongodump / mongoresotre zu verwenden. Wenn Sie Ihre Datenbank für einen bestimmten Zeitraum herunterfahren können, ist dies das Beste. Andernfalls müssen Sie Dateisystem-Snapshots oder ähnliches verwenden. Sehen Sie dieses für mehr den offiziellen Mongo Klappentext: Ссылка

    
Zags 19.12.2013 23:11
quelle

Tags und Links