Jeg har en Mongo-tjeneste, som flere værter interagerer med. Værten, som Mongo-tjenesten kører på, er ret speciel – den har 3 TB RAM. Imidlertid kaster den vært også intermitterende Bus Error-svar. Hvis der opstår en busfejl i Mongo-serviceprocessen, stoppes tjenesten, og alle selleriprocesser (Python) -processer, der interagerer med ressourcen, serveres Forbindelse Nægtede svar.
Er der en måde at tillade Mongo-tjenesten at på en eller anden måde komme sig efter en busfejl? Kan sharding hjælpe med dette problem? Er der en anden mulig løsning på busfejlen, der kan laves på applikationskonfigurationsniveauet? Jeg ville være taknemmelig for alle andre forslag om dette spørgsmål!
Jeg byggede Mongo fra kilden på RedHat, så jeg kan bruge enhver nyere version, hvis det hjælper. Den aktuelt installerede version er 3.6.4.
Kommentarer
- Busfejl stammer fra en eller anden proces, der forsøger at adressere RAM, der ikke er der (kan ikke adresseres). Jeg tror du skal se på HW / SW-kompatibilitet.
- @dezso er det ikke muligt at løse dette problem på applikationsniveau? Jeg kan ' ikke påvirke hardwaren i dette tilfælde, men kan konfigurere Mongo-applikationen …
- Nå, da det lyder, kan MongoDB ikke håndtere (adresse) hukommelsen ordentligt. Dette er næppe noget, du kan rette ved at justere indstillingerne (men jeg siger det uden at kende MongoDB). Jeg ' foreslår at åbne et problem med udviklerne, de har måske en bedre idé end nogen her.
- @duhaime, kan du opdatere " Bus fejl ?. Kommer det fra softwareniveau eller hardwaremærke. Tjekkede du igennem " smartmontools " i Linux-miljø?
- @MdHaidarAliKhan Jeg tror, at denne busfejl kommer fra hardwareniveau, men jeg ' vil gerne fange undtagelsen i applikationslaget …
Svar
Håndtering af busfejl i Mongo Service
Som pr. MongoDB-dokumentation her Det ville også være nyttigt at køre smartctl
(del af smartmontools ) for at kontrollere SMART-hardwarefejl:
sudo smartctl -a /dev/sdb
Selv du kan køre Linux fsck
værktøjet bruges til at kontrollere og reparere Linux-filsystemer (ext2
, ext3
, ext4
osv.).
Afhængigt af hvornår sidste gang en fil var system blev kontrolleret, kører systemet fsck
under opstartstid for at kontrollere, om filsystemet er i ensartet tilstand. Systemadministrator kan også køre det manuelt, når der er et problem med filsystemerne.
Sørg for at udføre fsck
på et ikke-monteret filsystem for at undgå enhver datakorruption udgaver.
Svar
Busfejl er oftest en indikation af en programfejl, i dette tilfælde MongoDB selv eller sjældent et hardwareproblem. Som sådan ville den første ting at prøve være at opgradere til den seneste stabile version. Hvis problemet fortsætter, er der ikke meget, du kan gøre ved det bortset fra at indsende en fejlrapport til Mongo.