Das aktuelle Szenario ist: Die Leistung der Maschine ist so hoch, dass die CPU sehr hoch ist. Ich habe die Modellnummer des i7 vergessen. nb bedeutet, dass während der Abfrage nur sehr wenige CPU-Operationen stattfinden. Sehen Sie es sich über htop an. Aber der Speicher ist nicht gut, er ist nur 8g groß und der Speicher wird in Zukunft definitiv erhöht. Die Festplatte ist ebenfalls eine gewöhnliche mechanische Festplatte und wird später ausgetauscht, aber ich kann jetzt spüren, dass bei mehr als 100.000 Abfragedaten ein Engpass auf io auftritt, io gesperrt ist und der Speicher blockiert ist Die Auslastung ist ebenfalls hoch. Dies führt dazu, dass andere Vorgänge stecken bleiben. Obwohl diese Auswirkung gering ist, spiegelt sie sich in der langen Wartezeit auf Seiten im Web wider.
Derzeit wurden folgende Optimierungen vorgenommen:
1. Passen Sie den Linux-Stack-Größenwert an.
2. Index erstellen.
3. Legen Sie einige beliebte Daten in eine separate Sammlung, die in der letzten Zeit (einen Monat) nicht geändert wurde.
Durch die oben genannten drei Optimierungen wird die Situation besser. Es treten jedoch weiterhin Probleme auf, wenn die Abfrage mehrere Bedingungen enthält. Die Dinge sind immer noch genauso schlimm.
Also sehr widersprüchlich. Wie können wir gut damit umgehen? Wenn es also einen anderen Server mit derselben Konfiguration gibt, kann diese Situation dann durch Vorgänge wie Sharding gelöst werden?
Danke
mongoDB,优化可以 1. 加内存; 2. 加更多内存; 3. 插满主板最大内存。
可以考虑换 redis + mysql 方案。
供参考。
1、先找出那些业务CRDU操作比较慢,然后围绕这些操作来优化。
2、整体来说,加内存/换SSD都是比较常见的做法。也有一些常见的参数设置来优化,可以参考MongoDB的production notes,并对照着来配置。
https://docs.mongodb.com/manu...
Love MongoDB! Have fun!