elasticsearch elasticsearch对1000万个事件的索引速度,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch elasticsearch对1000万个事件的索引速度,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch elasticsearch对1000万个事件的索引速度

elasticsearch elasticsearch对1000万个事件的索引速度,elasticsearch,logstash,elasticsearch,Logstash,我试图弄明白为什么elasticsearch在索引方面如此缓慢。我不确定这是否是elasticsearch本身的局限性,但我将分享到目前为止我所拥有的 我有一个elasticsearch节点和一个运行在box上的logstash实例。我的文档大约有15个字段,并且我有一个具有正确类型的弹性搜索映射设置(尽管我尝试过不使用映射,但得到了几乎相同的结果) 我一次索引大约800-1000万个事件,并采取了以下方法 具有以下格式的批量api(我将csv转换为JSON,并将其放入一个文件中,然后将其卷曲)

我试图弄明白为什么elasticsearch在索引方面如此缓慢。我不确定这是否是elasticsearch本身的局限性,但我将分享到目前为止我所拥有的

我有一个elasticsearch节点和一个运行在box上的logstash实例。我的文档大约有15个字段,并且我有一个具有正确类型的弹性搜索映射设置(尽管我尝试过不使用映射,但得到了几乎相同的结果)

我一次索引大约800-1000万个事件,并采取了以下方法

具有以下格式的批量api(我将csv转换为JSON,并将其放入一个文件中,然后将其卷曲)

{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }
{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }
{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }
我还尝试了使用tcp输入和原始csv,或者使用文件侦听器,并将csv拖到logstash正在侦听的文件的末尾

所有这三种方法似乎每秒接收大约10000个事件,速度非常慢

我做错了什么吗?我应该在批量摄取中显式地分配一个id,而不是让它自动生成一个id吗


通过批量API接收事件时,我已将事件分为50000和100000个事件文件,并分别接收每个事件文件。

您会发现我对此做了一些研究,您可以下载索引脚本文件,其中包含一些有用的脚本,以最大限度地提高索引性能。它在硬件和Elasti的优化方面确实有所不同C搜索索引,即删除副本节点等


希望这对您有所帮助。

您会发现我对此做了一些研究,您可以下载索引脚本文件,这有一些有用的脚本来最大限度地提高索引性能。它确实因硬件和Elasticsearch索引优化而异。例如,删除副本节点等

希望这对您有所帮助。

我建议您这样做。在批量索引期间,调整以下参数应该会有所帮助,但一旦完成,请缩短刷新间隔

 index.store.type: mmapfs
 indices.memory.index_buffer_size: 30%
 index.translog.flush_threshold_ops: 50000
 refresh_interval: 30s
我建议这样做。在批量索引期间,调整以下参数应该会有所帮助,但一旦完成,请缩短刷新间隔

 index.store.type: mmapfs
 indices.memory.index_buffer_size: 30%
 index.translog.flush_threshold_ops: 50000
 refresh_interval: 30s

链接缺失。是否可以在此处填写答案?@m3rg抱歉,在移动博客的过程中,回复太晚。将在今晚或明天晚些时候发布我所拥有的内容。链接缺失。是否可以在此处填写答案?@m3rg抱歉,在移动博客的过程中,回复太晚。将在今晚或明天晚些时候发布我所拥有的内容。请注意博客帖子已经很老了,所以在2.x安装上,我只会更新刷新间隔。需要检查一些事情:如果ES使用所有CPU(可能需要增加Logstash中的管道线程数以进行并行化),则调整大容量大小,直到找到合适的位置,如果使用1.x,则增加合并的存储限制(默认为20mb/s)在ES方面,你可以调整Logstash的模板:需要时只使用分析/未分析字段,不需要时禁用所有字段,如果不在该字段上排序/分析,则禁用文档值请注意,博客文章很旧,因此在2.x安装时,我只会更新刷新间隔。需要检查的一些事项:ES是否使用所有CPU(可能需要增加Logstash中的管道线程数以进行并行化),调整批量大小,直到找到合适的位置,如果使用1.x,则增加合并时的存储限制(默认为20mb/s)。在ES端,您可以调整Logstash的模板:需要时仅使用分析/未分析字段,不需要时禁用所有,不在该字段上排序/分析时禁用文档值