Behandlung von Busfehlern im Mongo-Dienst

Ich habe einen Mongo-Dienst, mit dem mehrere Hosts interagieren. Der Host, auf dem der Mongo-Dienst ausgeführt wird, ist etwas ganz Besonderes – er verfügt über 3 TB RAM. Dieser Host löst jedoch auch intermittierende Busfehlerantworten aus. Wenn innerhalb des Mongo-Dienstprozesses ein Busfehler auftritt, wird der Dienst angehalten und allen Sellerieprozessen (Python), die mit der Ressource interagieren, werden Antworten zur Verbindungsverweigerung zugestellt.

Gibt es eine Möglichkeit, den Mongo-Dienst zuzulassen? irgendwie von einem Busfehler zu erholen? Kann Sharding bei diesem Problem helfen? Gibt es eine andere mögliche Lösung für den Busfehler, die auf der Ebene der Anwendungskonfiguration vorgenommen werden kann? Ich wäre dankbar für alle Vorschläge, die andere zu dieser Frage machen können!

Ich habe Mongo aus dem Quellcode auf RedHat erstellt, damit ich jede neuere Version verwenden kann, wenn dies hilft. Die derzeit installierte Version ist 3.6.4.

Kommentare

  • Busfehler entstehen durch einen Prozess, der versucht, nicht vorhandenen RAM zu adressieren (kann nicht adressiert werden). Ich denke, Sie sollten sich HW / ansehen. SW-Kompatibilität.
  • @dezso ist es nicht möglich, dieses Problem auf Anwendungsebene zu lösen? Ich kann ' die Hardware in diesem Fall nicht beeinflussen, aber konfigurieren Die Mongo-Anwendung …
  • Nun, wie es sich anhört, kann MongoDB den Speicher nicht richtig handhaben (adressieren). Dies können Sie kaum durch Ändern der Einstellungen beheben (aber ich sage dies, ohne MongoDB tatsächlich zu kennen). Ich ' würde vorschlagen, ein Problem mit den Entwicklern zu eröffnen. Sie haben möglicherweise eine bessere Idee als jeder andere hier.
  • @duhaime, Könnten Sie die " Bus Fehler?. Kommt es von Software-Level oder Hardware-Label. Haben Sie " smartmontools " in einer Linux-Umgebung überprüft?
  • @MdHaidarAliKhan Ich glaube, dieser Busfehler kommt von der Hardware-Ebene, aber ich ' möchte die Ausnahme auf der Anwendungsebene abfangen …

Antwort

Behandlung von Busfehlern im Mongo-Dienst

Gemäß MongoDB-Dokumentation hier Es wäre auch hilfreich, smartctl auszuführen (Teil von smartmontools ), um nach SMART-Hardwarefehlern zu suchen:

sudo smartctl -a /dev/sdb 

Auch Sie können das Linux-Dienstprogramm fsck ausführen, um Linux-Dateisysteme zu überprüfen und zu reparieren (ext2, ext3, ext4 usw.).

Abhängig davon, wann das letzte Mal eine Datei erstellt wurde Wenn das System überprüft wurde, führt das System während des Startvorgangs die fsck aus, um zu überprüfen, ob sich das Dateisystem im konsistenten Zustand befindet. Der Systemadministrator kann es auch manuell ausführen, wenn ein Problem mit den Dateisystemen auftritt.

Stellen Sie sicher, dass Sie die fsck auf einem nicht bereitgestellten Dateisystem ausführen, um Datenbeschädigungen zu vermeiden Probleme.

Für Ihre weitere Referenz hier und hier

Antwort

Busfehler ist am häufigsten ein Hinweis auf a Programmfehler, in diesem Fall MongoDB selbst oder selten ein Hardwareproblem. Daher ist das erste, was Sie versuchen sollten, ein Upgrade auf die neueste stabile Version. Wenn das Problem weiterhin besteht, können Sie nicht viel dagegen tun, außer einen Fehlerbericht an Mongo zu senden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.