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.
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.