Wir haben ES 2.0 auf 3 EC2 c4.4xlarge-Knoten (16 Kerne, 32 GB Arbeitsspeicher) implementiert, 16G für ES zugewiesen, 500GB mit jeweils IO1/4000 IOPS.Langsame Indexgeschwindigkeit von Elasticsearch
Problem: Wir erwarten große Leistung auf dieser Hardware-Konfiguration wird jedoch eine sehr langsame Schaltgeschwindigkeit beobachtet.
Unser Dokument ist etwa 10-50k groß, wir verwenden den Java Transport Client zum Einfügen. Die Geschwindigkeit war für die ersten 50.000 bei ungefähr 1000/Sekunde in Ordnung und verlangsamte sich dramatisch auf 100-200/Sekunde.
In der Zwischenzeit wir auf dem niedrigen Ressourcenverbrauch suchen:
- CPU ist etwa 1-20% nur (16 Core-CPU)
- IO Schreib nur über 4-10Mb/Sekunde ist
- Speicherverbrauch liegt bei ca. 20-30% nur
Anforderungen: also ich kann nicht verstehen, warum es so langsam ist, während alle Rekurse so frei sind, Was kann ich tun, um die Effizienz zu steigern? Danke. Hier
ist die Config-Datei, die wir verwenden:
cluster.name: {{ env }}-{{ app }}
path.data: /data/es
path.logs: /data/es-logs
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["xxxx"]
bootstrap.mlockall: true
threadpool.search.queue_size: 300
threadpool.index.type: fixed
threadpool.index.size: 16
threadpool.index.queue_size: 250000
index.refresh_interval: 1s
index.translog.flush_threshold_ops: 50000
indices.memory.index_buffer_size: 30%
indices.memory.min_shard_index_buffer_size: 12mb
indices.memory.min_index_buffer_size: 96mb
script.inline: on
script.indexed: on
http.cors.enabled: true
http.cors.allow-origin: /https?:\/\/localhost(:[0-9]+)?/
Hier ist htop und iostat während der Ausführung des Auftrags:
machst du Massenindizierung? Wie viele Repliken hast du? Wie viele Standard-ES-Einstellungen haben Sie geändert? – ChintanShah25
wir simulieren hohe gleichzeitige Schreibvorgänge. 5 Scherben und 2 Repliken hier. Ich habe die Einstellungsdatei FYI aktualisiert. –
führen Sie "Suchoperationen" während "Massenindizierung" aus? auch Indexierungsanfragen gehen zu einem Knoten oder allen drei? – ChintanShah25