如何提高ElasticSearch 索引速度
1个回答
展开全部
我Google了下,大致给出的答案如下:
1、使用bulk API
2、初次索引的时候,把 replica 设置为 0
3、增大 threadpool.index.queue_size
4、增大 indices.memory.index_buffer_size
5、增大 index.translog.flush_threshold_ops
6、增大 index.translog.sync_interval
7、增大 index.engine.robin.refresh_interval
其中 5,6 属于 TransLog 相关。
4 则和Lucene相关
3 则因为ES里大量采用线程池,构建索引的时候,是有单独的线程池做处理的
7 的话个人认为影响不大
2 的话,能够使用上的场景有限。个人认为Replica这块可以使用Kafka的ISR机制。所有数据还是都从Primary写和读。Replica尽量只作为备份数据。
不过我希望大家知其然,并且根据原理,可以根据实际业务场景,做出相应的改动,而不仅仅是会配置上面几个参数。
1、使用bulk API
2、初次索引的时候,把 replica 设置为 0
3、增大 threadpool.index.queue_size
4、增大 indices.memory.index_buffer_size
5、增大 index.translog.flush_threshold_ops
6、增大 index.translog.sync_interval
7、增大 index.engine.robin.refresh_interval
其中 5,6 属于 TransLog 相关。
4 则和Lucene相关
3 则因为ES里大量采用线程池,构建索引的时候,是有单独的线程池做处理的
7 的话个人认为影响不大
2 的话,能够使用上的场景有限。个人认为Replica这块可以使用Kafka的ISR机制。所有数据还是都从Primary写和读。Replica尽量只作为备份数据。
不过我希望大家知其然,并且根据原理,可以根据实际业务场景,做出相应的改动,而不仅仅是会配置上面几个参数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询