我试图弄清楚为什么elasticsearch在索引方面如此缓慢。我不确定这是否是elasticsearch本身的限制,但我会分享到目前为止我所拥有的。
我有一个elasticsearch节点和一个logstash实例运行在一个框上。我的文档大约有15个字段,并且我有一个具有正确类型的弹性搜索映射设置(尽管我尝试过没有映射,得到了几乎相同的结果)。
我是索引大约8-10百万事件在一次,并采取了以下方法。
使用以下格式的批量api (我将csv转换为JSON并将其放入一个文件中,我将其卷入其中)
{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }
{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }
{"create" : {}}
{"field1" : "value1", "field2" : "value2 .... }我还尝试过使用带有原始csv的tcp输入或使用文件侦听器和猫使用logstash正在侦听的文件结束时的日志存储。
所有这三种方法似乎每秒钟摄入大约10,000个事件,这是非常缓慢的。
我做错了什么吗?我是否应该在我的大量摄入中显式分配一个id,而不是让它自动生成一个id?
当通过大容量API摄取时,我将事件拆分为50,000和100,000个事件文件,并分别摄取每个文件。
发布于 2014-03-31 13:44:27
您会发现我对这个这里做了一些研究,您可以下载索引脚本文件,这有一些有用的脚本,可以最大限度地提高索引性能。它确实在硬件和弹性索引搜索的优化上有所不同。即移除复制节点等。
希望这能对你有所帮助。
发布于 2014-04-01 03:57:42
我推荐这个博客。在批量索引期间,调整下列参数会有所帮助,但一旦完成,就可以减少refresh_interval。
index.store.type: mmapfs
indices.memory.index_buffer_size: 30%
index.translog.flush_threshold_ops: 50000
refresh_interval: 30shttps://stackoverflow.com/questions/22762908
复制相似问题