Ravendb Longo Response Time for Query, enquanto foi processado no servidor muito rápido

StackOverflow https://stackoverflow.com/questions/3811804

  •  26-09-2019
  •  | 
  •  

Pergunta

Raven.Server começou e Binded para a porta 8022. Inicializo o DataStore da seguinte maneira:

        var store = new DocumentStore() { Url = "http://localhost:8022" };
        store.Initialize();

Então estou fazendo essa consulta:

        using (var session = store.OpenSession())
        {
            Stopwatch watch = new Stopwatch();
            watch.Start();

            var result = session.LuceneQuery<Item>("Raven/DocumentsByEntityName")
                .WhereEquals("Tag", "Items")
                .ToList();

            watch.Stop(); // watch.ElapsedMilliseconds == ~550 ms

            return result;

        }

E watch.ElapsedMilliseconds é sempre ~ 550 ms. Mas quando olho para o console de Ravendb, vejo que a consulta foi processada em 3 ms:

Request # 170: GET     -    3 ms - 200 - /indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128

Assim, ~ 99,5% do tempo foram gastos não em Ravendb. Qual é o problema? (Ravendb 147)

Quando mudo para a auto-hospedagem do Ravendb (ou seja, como cliente incorporado), tudo está bem (~ 3ms).

Para esclarecer esse problema não na rede, HTTP Debuggers, DNS Servers etc. Também testei isso:

            Stopwatch watch = new Stopwatch();
            watch.Start();

            WebClient client = new WebClient();
            var result = client.DownloadString("http://127.0.0.1:8022/indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128");

            watch.Stop(); // watch.ElapsedMilliseconds == ~3-10ms

Velozes. Mas mudar para Raven.Client.Lightweight aumenta o tempo de resposta em 200 vezes (550-600 ms)

Foi útil?

Solução

O problema foi por causa do Middleman no meu computador - NOD32. Se você também o estiver usando - desmarque a seguinte caixa de seleção:

Configuração -> Configuração avançada -> Antivírus e Antispyware -> Filtragem de Protocolo -> "Ativar filtragem de conteúdo do protocal de aplicativo"

Desativação simples de antivírus ou firewall não ajuda!

Outras dicas

Talvez nitpicking e talvez apenas um tipo de tipo, mas às vezes as coisas mais bobas podem nos deixar malucos;

Sua declaração: "Raven.Server começou e se bateu em porto 8082. Eu inicializo o armazenamento de dados da seguinte maneira: "

Seu exemplo de código diz: "var store = new DocumentStore () {url =" http: // localhost:8022" };"

A porta em seu título é 8082 E a porta em seu exemplo é 8022.

Sei que seu Typ-O pode não estar no seu código real, mas nunca é demais verificar.

'estou' dizendo '

P

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top