Wie kann die Suchgeschwindigkeit einer Abfrage in Elastic Search verbessert werden?

Aug 16 2020

Der Host ist AWS von ElasticSearch. Ich habe 2 TB Daten in 6 Knoten und in 30 Indizes mit jeweils 10 Shards gespeichert. Eine einfache Suche in allen Indizes ist sehr, sehr langsam und dauert einige Minuten.

Wo habe ich den Fehler gemacht? Ist das normal oder habe ich schlechte Einstellungen oder habe ich zu viele Daten gespeichert?

Meine Clustereinstellungen:

"search": {
     "max_queue_size": "1000",
     "queue_size": "1000",
     "size": "4",
     "auto_queue_frame_size": "2000",
     "target_response_time": "1s",
     "min_queue_size": "1000"
},

Meine Knoteneinstellungen:

"os": {
     "refresh_interval_in_millis": 1000,
     "name": "Linux",
     "pretty_name": "CentOS Linux 7 (Core)",
     "arch": "amd64",
     "version": "4.15.0-1039-aws",
     "available_processors": 32,
     "allocated_processors": 2
}

Vielen Dank!

Antworten

3 ElasticsearchNinja Aug 16 2020 at 14:17

Es ist eine sehr breite Frage mit sehr wenig Informationen. Können Sie bitte weitere Informationen bereitstellen wie:

  1. Wie viele Daten Sie haben und wie groß die einzelnen Shards sind.
  2. Beispiel für Suchanfragen mit durchschnittlicher Zeit.
  3. Heap-Größe der Datenknoten und warum Sie allocated_processorssehr viel weniger (2) als verfügbare Prozessoren haben (32)
  4. Wie viele Dokumente rufen Sie in Ihrer Suchabfrage ab, z. B. Größenparameter?
  5. Suchlatenz für keine Suchaufrufe
  6. Durchsuchen Sie langsame Protokolle von elasticsearch (ES).

Sie können sich auf meine 10 Tipps zur Verbesserung der Suchleistung beziehen und mir auch die Werte einiger in den Tipps genannter Parameter mitteilen. Sie können auch das Cluster-Optimierungstool ausprobieren , um die Cluster- und Knoteneinstellungen von ES zu optimieren .

Wie im Kommentar erläutert, lesen Sie bitte das Slow-Log-Blog von opster, um das Problem effizienter zu beheben .

1 Jaycreation Aug 19 2020 at 11:20
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica

Das ist zu viel. Die Zielgröße für einen Shard sollte etwa 50 GB betragen. Mit Ihrer Einstellung sind Sie mehr um jeweils 5 GB. Sie können auf 5 Shards oder weniger verkleinern und das Zusammenführen auf 1 Segment erzwingen. Die Leistungen sollten stark verbessert werden.

Schauen Sie sich danach andere gute Ratschläge von Optsters in seinem Blog an. Sie sind alle relevant.