MongoDB ReplicaSet desempenho de leitura lenta

1

Eu configurei com sucesso o meu conjunto de réplicas, mas notei um desempenho lento de leitura. Eu tenho 2 servidores mongo e 1 árbitro no meu conjunto de réplicas. Todos estão rodando na configuração mínima do Centos 6.3 (apenas banco de dados).

Eu também tenho uma única instância do mongo no Windows server 2012.

Antes de criar meu conjunto de réplicas, meu servidor da web estava no mesmo SO que o Mongo (aquela instância do windows). O desempenho foi bom, os resultados foram como

C # .NET 4.5 (IIS e Mongo na mesma VM) Lê 2000 linhas: ~ 250ms em 2600 bytes do AvgObj

Agora, com o meu conjunto de réplicas, tenho um desempenho de leitura muito lento. Quando minha réplica de acesso ao servidor web está configurada, estou obtendo resultados como

C # .NET 4.5 (separado, IIS e Mongo na réplica do Centos) Lê 2000 linhas: ~ 2500ms no AvgObj 2600 bytes

Eu tentei ler a partir do meu único Mongo instantâneo do IIS remoto e o resultado é como

C # .NET 4.5 (separado, IIS e Single Mongo no Windows) Ler linhas 2000: ~ 600ms em 2600 bytes do AvgObj

Todos os servidores estão sendo executados em uma única máquina física com o servidor núcleo do Hyper-V.

Estou usando a versão mais recente do C # MongoDB Driver 1.7. Pelo que eu testei, em todos os servidores mongo, minha consulta é executada em 10 ms.

Alguém pode me dar sugestões de por que minha réplica definida em servidores Centos separados tem desempenho de leitura lento?

    
por Novkovski Stevo Bato 20.12.2012 / 22:43

1 resposta

1

Se você tentar ler diretamente de uma réplica sem definir slaveok = true, a réplica representará a leitura do mestre e do retransmissor. Esta é provavelmente a fonte da maior parte da sua latência. Verifique novamente o seu modo de preferência para ter certeza de que está definindo um que permita a leitura diretamente dos nós não principais.

    
por 20.12.2012 / 23:18