MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

desempenho ruim do mongodb


O MongoDB tem um bloqueio de gravação global . Isso significa que apenas uma de suas atualizações pode prosseguir por vez.

O db.serverStatus() O comando pode ajudá-lo a diagnosticar problemas com o bloqueio de gravação global.

Aqui estão algumas coisas que você pode tentar:

1) Certifique-se de estar usando o mongodb 2.0. Tem melhor simultaneidade do que as versões mais antigas. 2.2 terá ainda melhor concorrência.

2) Coloque suas gravações em fila para que sejam assíncronas e execute todas elas usando um único thread. Isso pode ajudar com a simultaneidade, porque geralmente apenas um thread tentará usar o bloqueio de gravação global por vez.

3) Se você estiver usando a versão mais recente e não puder tornar suas gravações de thread único, considere a fragmentação. A fragmentação é muito mais do que apenas tamanho; é pelo menos tão importante para a simultaneidade de gravação. Se você estilhaçar, cada segmento será executado em seu próprio processo com seu próprio bloqueio de gravação global. Isso permitirá que todo o sistema processe mais gravações.