Tratamento de erro de barramento no serviço Mongo

Eu tenho um serviço Mongo com o qual vários hosts estão interagindo. O host no qual o serviço Mongo está sendo executado é bastante especial – ele tem 3 TB de RAM. No entanto, esse host também lança respostas intermitentes de erro de barramento. Se ocorrer um erro de barramento no processo de serviço Mongo, o serviço é interrompido e todos os processos de aipo (Python) que estão interagindo com o recurso recebem respostas de conexão recusada.

Há uma maneira de permitir o serviço Mongo recuperar de um erro de barramento de alguma forma? A fragmentação pode ajudar com este problema? Existe alguma outra solução potencial para o erro de barramento que pode ser feita no nível de configuração do aplicativo? Eu ficaria grato por qualquer sugestão que outros possam oferecer sobre esta questão!

Eu construí Mongo a partir da fonte no RedHat, então posso usar qualquer versão recente se isso ajudar. A versão instalada atualmente é 3.6.4.

Comentários

  • Erros de barramento originam-se de algum processo que tenta endereçar RAM que não existe (não pode ser corrigido). Eu acho que você deve olhar em HW / Compatibilidade de SW.
  • @dezso não é possível resolver este problema no nível do aplicativo? Não posso ' afetar o hardware neste caso, mas posso configurar o aplicativo mongo …
  • Bem, parece que o MongoDB não consegue lidar (endereçar) a memória corretamente. Isso dificilmente é algo que você possa consertar ajustando as configurações (mas estou dizendo isso sem realmente conhecer o MongoDB). Eu ' d sugiro abrir um problema com os desenvolvedores, eles podem ter uma ideia melhor do que qualquer um aqui.
  • @duhaime, você poderia atualizar o " Ônibus erro ?. É proveniente de nível de software ou etiqueta de hardware. Você verificou por meio do " smartmontools " no ambiente linux?
  • @MdHaidarAliKhan Eu acredito que este erro de barramento vem do nível de hardware, mas eu ' gostaria de capturar a exceção na camada de aplicativo …

Resposta

Tratamento de erro de barramento no serviço Mongo

De acordo com Documentação do MongoDB aqui Também seria útil executar smartctl (parte de smartmontools ) para verificar erros de hardware SMART:

sudo smartctl -a /dev/sdb 

Até mesmo você pode executar o utilitário Linux fsck que é usado para verificar e reparar sistemas de arquivos Linux (ext2, ext3, ext4, etc.).

Dependendo de quando foi a última vez que um arquivo o sistema foi verificado, o sistema executa o fsck durante o tempo de inicialização para verificar se o sistema de arquivos está em estado consistente. O administrador do sistema também pode executá-lo manualmente quando há um problema com os sistemas de arquivos.

Certifique-se de executar o fsck em sistemas de arquivos não montados para evitar qualquer corrupção de dados problemas.

Para mais ref aqui e aqui

Resposta

Erro de barramento é mais frequentemente uma indicação de um bug do programa, neste caso o próprio MongoDB ou, raramente, um problema de hardware. Como tal, a primeira coisa a tentar seria atualizar para a versão estável mais recente. Se o problema persistir, não há muito que você possa fazer a respeito além de enviar um relatório de bug ao Mongo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *