indices.memory.index_buffer_size 这个值默认是10%,我测试过纯写入情况下,把这个值分别调成30% 50% 80%,发现数据写入速率只有轻微的提高。
我的一个es集群,由于经常有从其他数据源导入数据,导入完成后不再有写入,只有纯查询的情况,为了避免导入时影响查询,现在是专门设置了一组节点用于导数据,完成之后分片迁移到其他节点。
1.这组仅用于导数据的节点,有必要把index_buffer_size调大吗。除了这个参数外,还有其他参数需要调整吗。
2.假如调成了80%,是代表它会独占这80%内存,仅剩20%给其他用途,还是说内存是争用的,它最大能够用到80%呢。
我的一个es集群,由于经常有从其他数据源导入数据,导入完成后不再有写入,只有纯查询的情况,为了避免导入时影响查询,现在是专门设置了一组节点用于导数据,完成之后分片迁移到其他节点。
1.这组仅用于导数据的节点,有必要把index_buffer_size调大吗。除了这个参数外,还有其他参数需要调整吗。
2.假如调成了80%,是代表它会独占这80%内存,仅剩20%给其他用途,还是说内存是争用的,它最大能够用到80%呢。
1 个回复
byx313 - BLOG:https://www.jianshu.com/u/43fd06f9589c
赞同来自:
再回到你的写入场景。你现在是要尽量的提升写的性能,可以在疯狂写入的期间(1)把集群rebalance关闭(2)把shard副本关闭,相信可以提升不少的写入性能。如果都做了,可以(1)降低下refresh的频率(2)提高merge_factor的值,降低merge次数。但是我觉得可能意义不大。
最后,确保没有使用自定义id,bulk性能差非常多。
Q2:没记错是个最大值。