RavenDB lange Reaktionszeit für die Suche, während wurde sehr schnell auf dem Server verarbeitet

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

  •  26-09-2019
  •  | 
  •  

Frage

Raven.Server gestartet und binded auf Port 8022 I initialisieren Datastor auf folgende Weise:

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

Dann solche Abfrage ich mache:

        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;

        }

Und watch.ElapsedMilliseconds ist immer ~ 550 ms. Aber wenn ich zu RavenDB Konsole aussehen sehe ich, dass Abfrage in 3 ms verarbeitet wurde:

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

So ~ 99,5% der Zeit nicht in RavenDB ausgegeben. Worin besteht das Problem? (RavenDB 147)

Wenn ich wechsle auf Selbst Hosting von RavenDB (das heißt als eingebetteter Client) alles in Ordnung ist (~ 3 ms).

Um dieses Problem nicht in Netzwerk zu klären, http Debugger, DNS-Server usw. i auch diese getestet:

            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

Fast. Aber die Umstellung auf Raven.Client.Lightweight Anstieg Reaktionszeit in dem 200-fache (550-600 ms)

War es hilfreich?

Lösung

Das Problem war wegen Mittelsmann auf meinem Computer - NOD32. Wenn Sie es auch verwenden - deaktivieren Sie die folgenden Kontrollkästchen:

Einstellungen -> Erweiterte Einstellungen -> Viren- und Spyware -> Protokollfilterung -> "Enable Anwendung protocal Content Filtering"

Einfache Sperrung von Antivirus- oder Firewall- nicht Hilfe!

Andere Tipps

Vielleicht Erbsenzählerei und vielleicht auch nur ein typ-o, aber manchmal sind die dümmsten Dinge können uns verrückt machen;

Ihre Aussage: "Raven.Server gestartet und binded zu portieren 8082 Ich initialisieren Datastor auf folgende Weise:."

Ihr Codebeispiel lautet: "Var store = new DocumentStore () {URL = "http: // localhost: 8022 "};"

die Port in Ihrem Titel ist 8082 und die Port in Ihrem Beispiel ist 8022 .

Ich weiß, Ihr typ-o nicht in Ihrem aktuellen Code sein kann, aber es schadet nie zu überprüfen.

'm jus' Sayin

P

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top