Obsługa błędu magistrali w usłudze Mongo

Mam usługę Mongo, z którą współpracuje wiele hostów. Host, na którym działa usługa Mongo, jest wyjątkowy – ma 3 TB pamięci RAM. Jednak ten host generuje również sporadyczne odpowiedzi na błędy magistrali. Jeśli w procesie usługi Mongo wystąpi błąd magistrali, usługa zostaje zatrzymana, a wszystkie procesy selera (Python), które wchodzą w interakcję z zasobem, otrzymują odpowiedzi odmowy połączenia.

Czy istnieje sposób, aby zezwolić usłudze Mongo jakoś wyzdrowieć po błędzie magistrali? Czy fragmentowanie może pomóc w rozwiązaniu tego problemu? Czy istnieje inne potencjalne rozwiązanie błędu magistrali, które można wykonać na poziomie konfiguracji aplikacji? Byłbym wdzięczny za wszelkie sugestie, które inni mogą zaoferować w tej sprawie!

Zbudowałem Mongo ze źródeł na RedHacie, więc mogę użyć dowolnej najnowszej wersji, jeśli to pomoże. Obecnie zainstalowana wersja to 3.6.4.

Komentarze

  • Błędy magistrali wynikają z jakiegoś procesu próbującego zaadresować pamięć RAM, której nie ma (nie można jej rozwiązać). Myślę, że powinieneś zajrzeć do HW / Zgodność z oprogramowaniem.
  • @dezso czy nie można rozwiązać tego problemu na poziomie aplikacji? Mogę ' t wpłynąć na sprzęt w tym przypadku, ale mogę skonfigurować aplikacja mongo …
  • Cóż, jak się wydaje, MongoDB nie może poprawnie obsłużyć (adresować) pamięci. Trudno to naprawić, dostosowując ustawienia (ale mówię to bez znajomości MongoDB). ' d sugeruję otwarcie problemu z programistami, mogą mieć lepszy pomysł niż ktokolwiek tutaj.
  • @duhaime, czy możesz zaktualizować " Autobus błąd ?. Czy pochodzi z poziomu oprogramowania, czy etykiety sprzętu. Czy sprawdziłeś " smartmontools " w środowisku Linux?
  • @MdHaidarAliKhan Myślę, że ten błąd magistrali pochodzi z na poziomie sprzętu, ale ' chcę przechwycić wyjątek w warstwie aplikacji …

Odpowiedź

Obsługa błędu magistrali w usłudze Mongo

Zgodnie z Dokumentacja MongoDB tutaj Przydałoby się również uruchomienie smartctl (część smartmontools ), aby sprawdzić błędy sprzętowe SMART:

sudo smartctl -a /dev/sdb 

Nawet możesz uruchomić narzędzie fsck Linuksa używane do sprawdzania i naprawiania systemów plików Linuksa (ext2, ext3, ext4 itd.).

W zależności od tego, kiedy ostatni raz plik system został sprawdzony, system uruchamia fsck podczas rozruchu, aby sprawdzić, czy system plików jest spójny. Administrator systemu może również uruchomić go ręcznie, gdy wystąpi problem z systemami plików.

Upewnij się, że wykonujesz fsck na odmontowanych systemach plików, aby uniknąć uszkodzenia danych

Dalsze informacje znajdują się tutaj i tutaj

Odpowiedź

Błąd magistrali najczęściej wskazuje na błąd programu, w tym przypadku sam MongoDB lub, rzadko, problem sprzętowy. W związku z tym pierwszą rzeczą, którą należy wypróbować, byłaby aktualizacja do najnowszej stabilnej wersji. Jeśli problem będzie się powtarzał, niewiele możesz z nim zrobić poza przesłaniem raportu o błędzie do Mongo.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *