首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索的慢速索引速度

弹性搜索的慢速索引速度
EN

Stack Overflow用户
提问于 2015-11-27 07:16:33
回答 1查看 15.4K关注 0票数 18

我们在3个EC2 c4.4xsize(16核,32 on内存)节点上部署了ES2.0,为ES分配了16G,并在每个节点上附加了500 on的io1/4000 IOPS。

Problem:我们期望从这个硬件配置中获得很好的性能,但是的索引速度非常慢,可以观察到

我们的文档大小约为10-50k,我们正在使用Java传输客户端进行插入。在最初的50,000,大约1000/秒的速度是正常的,并戏剧性地减慢到100-200/秒。

与此同时,我们关注的是低资源消耗:

  1. CPU仅占1-20% (16核心CPU)
  2. IO写仅为4-10 IO/秒。
  3. 内存消耗仅为20-30%。

Requirements:所以我不明白为什么所有的资源都是免费的,,我能做什么来提高效率呢?,谢谢。

下面是我们使用的配置文件:

代码语言:javascript
复制
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]+)?/

以下是运行作业时的htop和iostat:

EN

回答 1

Stack Overflow用户

发布于 2016-01-16 05:57:03

将您的ES升级到最新版本,因为在最近的版本中,它们使其更易于生产,而且现在最稳定的版本是最新的2.3版本。

您可以尝试使用以下方法来加快索引的速度:

  1. 使一些主节点独立于数据节点,因为它将减少所有集群上的负载。
  2. 禁用OS交换,ES会处理这个问题,并检查所有机器的堆大小( 堆浆料 )。
  3. 检查文档大小是否相同,可以使用大容量索引,并在其中调整设置,如chunk_size中的记录数或内存大小。
  4. 如果您正在使用脚本,尝试优化它,因为它们会使索引变得缓慢,如果可能的话,您可以将脚本值存储为预处理,因为ES不是为处理脚本而设计的。
  5. 检查每个节点的碎片数量,并尝试使用路由在各个节点之间平衡这一点。
  6. 了解更多关于专家建议生产准备系统如何运行生产中的弹性研究的信息
  7. 关于提高弹性搜索索引性能的另一个博客弹性搜索索引的性能考虑

检查这个答案,以获得在三台服务器上安装ELK堆栈的最佳方式。在三台服务器上设置ELK堆栈的最佳方法

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33952089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档