Nous avons déployé ES 2.0 sur 3 nœuds EC2 c4.4xlarge (16 cœurs, 32 Go de mémoire), allouant 16 Go pour ES, attaché 500 Go avec io1/4000 IOPS sur chacun.
Problème : Nous attendons de grandes performances de cette configuration matérielle, cependant une vitesse d'indexation très lente est observé.
Notre document fait environ 10-50k, nous utilisons Java client de transport à insérer. La vitesse était correcte pour les 50 000 premiers à environ 1000/seconde, et ralentit considérablement à 100-200 /seconde.
En attendant, nous examinons la faible consommation de ressources:
Exigences : Je ne peux donc pas comprendre pourquoi c'est si lent alors que tous les recours sont si gratuits, que puis-je faire pour améliorer l'efficacité? Merci.
Voici le fichier de configuration que nous utilisons:
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]+)?/
Mettez à niveau votre ES vers la dernière version, car dans les versions récentes, ils l'ont rendue plus conviviale et la version la plus stable est maintenant la dernière 2.3
Vous pouvez essayer les choses suivantes pour accélérer l'indexation:
Vérifiez cette réponse pour un moyen optimal de configurer ELK Stack sur trois serveurs. Manière optimale de configurer la pile ELK sur trois serveurs