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.