RavenDB largo tiempo de respuesta para la pregunta, mientras que se procesa en el servidor muy rápido

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

  •  26-09-2019
  •  | 
  •  

Pregunta

Raven.Server comenzó y enganchan al puerto 8022. Me inicializar almacén de datos de la siguiente manera:

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

A continuación, estoy haciendo tales 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;

        }

Y watch.ElapsedMilliseconds es siempre ~ 550 ms. Pero cuando miro a la consola RavenDB veo que la consulta se procesa en 3 ms:

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

Por lo tanto ~ 99,5% del tiempo se han gastado no en RavenDB. ¿Cuál es el problema? (RavenDB 147)

cuando cambio a autoalojamiento de RavenDB (es decir, como cliente incorporado) todo está bien (~ 3 ms).

Para aclarar esta cuestión no en red, http depuradores, los servidores DNS etc. i también probado esto:

            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

rápido. Pero el cambio a Raven.Client.Lightweight tiempo aumentar la respuesta en 200 veces (550-600 ms)

¿Fue útil?

Solución

El problema era debido intermediario en mi equipo - NOD32. Si también está utilizando - desactive la casilla de verificación siguiente:

Configuración -> Configuración avanzada -> Antivirus y antispyware -> Filtrado de Protocolo -> "Activar la aplicación del contenido de la filtración Protocal"

incapacitante simple de antivirus o firewall no ayuda!

Otros consejos

Tal vez nitpicking y tal vez sólo un tip-o, pero a veces las cosas más tontas nos puede volver loco;

su declaración: "Raven.Server comenzó y enganchan al puerto 8082 Me inicializar almacén de datos de la siguiente manera:."

el ejemplo de código lee: "Tienda var = nuevo DocumentStore () {url = "http: // localhost: 8022 "};"

El puerto en su título es 8082 y el puerto en su ejemplo es 8022 .

Me doy cuenta de que su Typ-o puede no estar en su código real, pero nunca está de más comprobar.

'm jus' diciendo

P

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top