ES 2.0を3つのEC2 c4.4xlarge(16コア、32 GBメモリ)ノードに展開し、ESに16Gを割り当て、それぞれにio1/4000 IOPSの500GBを接続しました。
問題:このハードウェア構成では優れたパフォーマンスが期待されますが、非常に遅いインデックス作成速度が観察されます。
私たちのドキュメントのサイズは約10〜50kで、Java=トランスポートクライアントを使用して挿入します。速度は最初の50,000では約1000 /秒で問題なく、劇的に100〜200に低下しました。 /秒。
その間、リソース消費量が少ないことに注目しています。
要件:すべてのリソースが非常に無料であるのになぜ遅いのか理解できません効率を高めるにはどうすればよいですか?ありがとうございます。
これが私たちが使っている設定ファイルです:
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]+)?/
ESを最新バージョンにアップグレードしてください。最近のリリースでは、ESがより生産的に使いやすくなり、現在最も安定したリリースが最新のものです2.3
次のことを試して、インデックス作成を高速化できます。
3つのサーバーでELKスタックをセットアップする最適な方法については、この回答を確認してください。 つのサーバーでELKスタックを設定する最適な方法