MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb schlechte Leistung

MongoDB hat eine globale Schreibsperre . Das bedeutet, dass jeweils nur eine Ihrer Aktualisierungen ausgeführt werden kann.

Der db.serverStatus() Befehl kann Ihnen helfen, Probleme mit der globalen Schreibsperre zu diagnostizieren.

Hier sind einige Dinge, die Sie ausprobieren können:

1) Stellen Sie sicher, dass Sie Mongodb 2.0 verwenden. Es hat eine bessere Parallelität als ältere Versionen. 2.2 wird noch bessere Parallelität haben.

2) Stellen Sie Ihre Schreibvorgänge in eine Warteschlange, sodass sie asynchron sind, und führen Sie sie alle mit einem einzigen Thread aus. Dies könnte bei der Parallelität hilfreich sein, da im Allgemeinen immer nur ein Thread versucht, die globale Schreibsperre zu verwenden.

3) Wenn Sie die neueste Version verwenden und Ihre Schreibvorgänge nicht in einem einzelnen Thread ausführen können, sollten Sie Sharding in Betracht ziehen. Sharding ist für viel mehr als nur Größe; Es ist mindestens genauso wichtig für die Schreibparallelität. Wenn Sie fragmentieren, wird jedes Segment in einem eigenen Prozess mit einer eigenen globalen Schreibsperre ausgeführt. Dadurch kann das gesamte System mehr Schreibvorgänge verarbeiten.