2016-07-28 10 views
0

Ich exportiere einen umfangreichen Datensatz von der Dynamik zur elastischen Suche. Unten sind die Schritte:Elastische Suche Bulk-Upload verlangsamt im Laufe der Zeit

  1. Holen Sie sich Daten aus SQL (ich verwende Entity Framework). Benennen wir den Haupttyp als Kontakt.
  2. Dann gruppiere ich Daten mit einer definierten Größe und serialisieren sie.
  3. Formatieren Sie Daten für Bulk-Upload gemäß der ES Docs
  4. Rufen Sie HttpPost auf und senden Sie die Daten an den ES-Endpunkt.

Ich mache umfangreiche Protokollierung für die Zeit, die es dauert und alle Fehler.

Es funktioniert alles und mein Export exportiert die Daten in einer Stunde.

Das sagte, ich habe beobachtet, dass die Antwortzeit der HttpPost weiter steigt. Ich habe nach irgendwelchen Speicherlecks gesucht, die ich haben könnte, oder nach allem, was ich tun sollte und was nicht. Ich möchte sicherstellen, dass es mich später nicht verfolgen wird.

Was sind also die möglichen Gründe für die Erhöhung der Reaktionszeiten? Wie soll ich das Problem untersuchen?

Antwort

0

Ich benutze ES 1.7 und ich Index über 10 Millionen Dokumente mit ähnlichen Szenario. Aus meiner Erfahrung, wenn Sie ES zu hart drücken, wird es verlangsamen und manchmal mit OutOfMemory-Ausnahmen fehlschlagen. Ich weiß nicht, ob es immer noch ein Problem mit neueren Versionen ist.

IMHO ist, weil ES etwas Zeit benötigt, um bulks zu verarbeiten - es akzeptiert Daten, indexiert es, aber danach macht es etwas Hintergrundarbeit, um den Index zu optimieren.

Um dieses Problem zu lösen, habe ich mit Parametern experimentiert: eine einzige Bulk-Größe (N), Schlafzeit zwischen Indexing Bulks (S1) und viel länger Schlaf zwischen ein paar (M) Bulks (S2). Für meinen Datensatz und meine Hardware endete ich mit N = 5000, S1 = 1s, M = 10, S2 = 10s. Um sichere Werte zu wählen, beobachte ich die Verwendung von CPU, Speicher und E/A. Zum Beispiel kann eine erhöhte E/A-Nutzung für einen längeren Zeitraum darauf hinweisen, dass ES bald ausfallen wird.

Ich bin mir sicher, es ist sehr abhängig von der Hardware, die Sie haben, vor allem geben ES so viel Speicher wie Sie können!

+0

Das funktionierte für mich. Ich habe den Sweetspot für den Bulk-Upload gefunden. – Alok

Verwandte Themen