index.refresh_interval: 120s
1
或者
index.merge.scheduler.max_thread_count: 4
index.merge.policy.*
1
2
最大线程数max_thread_count的默认值如下:
tiered(默认策略);
log_byte_size;
log_doc。
每个策略的具体描述可以参考:
索引创建时合并策略就已经确定,不能更改,但是可以动态更新策略参数。如果堆栈经常有很多merge,则可以尝试调整以下策略配置:
index.merge.policy.segments_per_tier
index.merge.policy.max_merged_segment
指定了单个segment的最大容量,默认为5GB,可以考虑适当降低此值。
indices.memory.index_buffer_size:默认为整个堆空间的10%。
indices.memory.min_index_buffer_size:默认为48MB。
indices.memory.max_index_buffer_size:默认无限制。
在执行大量的索引操作时,indices.memory.index_buffer_size的默认值可能不够,这和可用堆内存、单节点上的shard数量相关,可以考虑适当增大该值。
6. 磁盘间的任务均衡
如果不熟方案是为path.data配置多个路径来使用多块磁盘,ES通过下面2种策略均衡的写入不同的磁盘:
这样可以降低I/O的压力,不过实际场景中大多不会禁用 _source,即使过滤掉某些字段,对于写入速度提升作用也不大,满负荷写入情况下,基本是CPU先跑满,瓶颈在于CPU。
8.5 对Analyzed的字段禁用Noms
Norms用于在搜索时计算doc的评分,如果不需要评分,则可以将其禁用:
不过在实际场景中,通常很难确定业务将来会不会用到这些信息,除非一开始方案就明确是这样设计的。