Jai un service Mongo avec lequel plusieurs hôtes interagissent. Lhôte sur lequel le service Mongo sexécute est assez spécial – il dispose de 3 To de RAM. Cependant, cet hôte émet également des réponses derreur de bus intermittentes. Si une erreur de bus se produit dans le processus de service Mongo, le service est interrompu et tous les processus de céleri (Python) qui interagissent avec la ressource reçoivent des réponses Connexion refusée.
Existe-t-il un moyen dautoriser le service Mongo récupérer en quelque sorte dune erreur de bus? Le sharding peut-il résoudre ce problème? Existe-t-il une autre solution potentielle à lerreur de bus qui peut être apportée au niveau de la configuration de lapplication? Je serais reconnaissant pour toutes les suggestions que les autres peuvent offrir sur cette question!
Jai construit Mongo à partir des sources sur RedHat afin que je puisse utiliser nimporte quelle version récente si cela peut aider. La version actuellement installée est la 3.6.4.
Commentaires
- Les erreurs de bus proviennent dun processus essayant dadresser la RAM qui nest pas là (ne peut pas être adressée). Je suppose que vous devriez regarder dans HW / Compatibilité logicielle.
- @dezso nest-il pas possible de résoudre ce problème au niveau de lapplication? Je ne peux ' affecter le matériel dans ce cas, mais je peux configurer lapplication mongo …
- Eh bien, comme cela semble, MongoDB ne peut pas gérer (adresser) la mémoire correctement. Ce nest guère quelque chose que vous pouvez corriger en modifiant les paramètres (mais je dis cela sans vraiment connaître MongoDB). Je ' suggère douvrir un problème avec les développeurs, ils pourraient avoir une meilleure idée que quiconque ici.
- @duhaime, pourriez-vous mettre à jour le " Bus erreur ?. Cela vient-il du niveau du logiciel ou de létiquette du matériel. Avez-vous vérifié via " smartmontools " dans lenvironnement Linux?
- @MdHaidarAliKhan Je pense que cette erreur de bus provient du niveau matériel, mais je ' aimerais attraper lexception au niveau de la couche application …
Réponse
Gestion des erreurs de bus dans le service Mongo
Selon Documentation MongoDB ici Il serait également utile dexécuter smartctl
(partie de smartmontools ) pour rechercher les erreurs matérielles SMART:
sudo smartctl -a /dev/sdb
Même si vous pouvez exécuter lutilitaire Linux fsck
, il est utilisé pour vérifier et réparer les systèmes de fichiers Linux (ext2
, ext3
, ext4
, etc.).
Selon la date de la dernière fois quun fichier système a été vérifié, le système exécute fsck
pendant le démarrage pour vérifier si le système de fichiers est dans un état cohérent. Ladministrateur système peut également lexécuter manuellement en cas de problème avec les systèmes de fichiers.
Assurez-vous dexécuter fsck
sur un système de fichiers non monté pour éviter toute corruption de données problèmes.
Réponse
Une erreur de bus indique le plus souvent une bogue du programme, dans ce cas MongoDB lui-même, ou, rarement, un problème matériel. En tant que tel, la première chose à essayer serait de passer à la dernière version stable. Si le problème persiste, vous ne pouvez pas faire grand-chose à part soumettre un rapport de bogue à Mongo.