Elasticesearch内存详解(四)——indexing buffer

简介: 介绍elasticsearch的indexing buffer

1.Indexing buffer(索引写入缓冲区)

索引写入缓冲区,用于存储新写入的文档,当其被填满时,缓冲区中的文档被写入磁盘中的 segments 中。节点上所有 shard 共享。这部分空间是可以通过GC被反复利用的。

索引写入缓冲区用于存储新建索引的文档。 填满时,缓冲区中的文档将写入磁盘上的segments。 它在节点上的所有分片之间划分。

2.indexing buffer配置

以下设置是静态的,必须在群集中的每个数据节点上进行配置:

indices.memory.index_buffer_size 接受百分比或字节大小的值。 它默认为10%,这意味着分配给一个节点的总堆栈的10%将用作所有分片共享的索引缓冲区大小。

indices.memory.min_index_buffer_size 如果将index_buffer_size指定为百分比,则可以使用此设置指定绝对最小值。 默认值为48mb。

ndices.memory.max_index_buffer_size 如果index_buffer_size被指定为百分比,则可以使用此设置来指定绝对最大值。 默认为限制

image.png

3.indexing buffer注意事项

由于可以GC,有flush操作,不需要特殊的关注

Indexing Buffer是用来缓存新数据,当其满了或者refresh/flush interval到了,就会以segment file的形式写入到磁盘。 这个参数的默认值是10% heap size。根据经验,这个默认值也能够很好的工作,应对很大的索引吞吐量。 但有些用户认为这个buffer越大吞吐量越高,因此见过有用户将其设置为40%的。到了极端的情况,写入速度很高的时候,40%都被占用,导致OOM。

相关文章
|
存储 缓存 自然语言处理
Elasticesearch内存详解
Elasticesearch内存详解总结文章
4144 0
Elasticesearch内存详解
|
6月前
|
存储 缓存 算法
内存系列学习(四):Cache和Write Buffer一般性介绍
内存系列学习(四):Cache和Write Buffer一般性介绍
265 0
|
5月前
|
缓存 关系型数据库 MySQL
MySQL数据库——InnoDB引擎-架构-内存结构(Buffer Pool、Change Buffer、Adaptive Hash Index、Log Buffer)
MySQL数据库——InnoDB引擎-架构-内存结构(Buffer Pool、Change Buffer、Adaptive Hash Index、Log Buffer)
98 3
|
6月前
|
存储 缓存
怎么理解内存中的Buffer和Cache?
怎么理解内存中的Buffer和Cache?
71 2
|
6月前
|
存储 算法 Linux
内存系列学习(五):ARM处理器中的Cache和Write Buffer
内存系列学习(五):ARM处理器中的Cache和Write Buffer
278 0
内存系列学习(五):ARM处理器中的Cache和Write Buffer
|
存储 缓存 BI
|
存储 缓存 Java
Elasticesearch内存详解(二)——内存架构
Elasticsearch内存架构及设置建议
1089 1
Elasticesearch内存详解(二)——内存架构
|
存储 运维 Java
Elasticesearch内存详解(九)——内存排查
介绍Elasticesearch内存排查相关
1036 0
|
缓存 固态存储 Java
Elasticesearch内存详解(七)——Fielddata Cache
介绍Elasticesearch内存的Fielddata Cache
1455 0
Elasticesearch内存详解(七)——Fielddata Cache
|
缓存 JSON Java
Elasticesearch内存详解(六)——Shard request cache
介绍Elasticesearch内存中的Shard request cache
594 0
Elasticesearch内存详解(六)——Shard request cache