关于 Elasticsearch 内存占用及分配

本文深入探讨了Elasticsearch与Lucene在内存使用上的特性与优化策略,包括JAVA堆空间限制、Lucene缓存策略、各种缓存机制如NodeQueryCache、IndexingBuffer及ShardRequestCache的作用与配置建议,以及如何合理分配内存给Elasticsearch和Lucene以提升全文检索性能。

 

 

Elasticsearch 和 Lucene 对内存使用情况:


Elasticsearch 限制的内存大小是 JAVA 堆空间的大小,不包括Lucene 缓存倒排索引数据空间。

  • Lucene 中的 倒排索引 segments 存储在文件中,为提高访问速度,都会把它加载到内存中,从而提高 Lucene 性能。所以建议至少留系统一半内存给Lucene。
  • Node Query Cache (负责缓存f ilter 查询结果),每个节点有一个,被所有 shard 共享,filter query查询结果要么是 yes 要么是no,不涉及 scores 的计算。
    集群中每个节点都要配置,默认为:indices.queries.cache.size:10%
  • Indexing Buffer 索引缓冲区,用于存储新索引的文档,当其被填满时,缓冲区中的文档被写入磁盘中的 segments 中。节点上所有 shard 共享。
    缓冲区默认大小: indices.memory.index_buffer_size: 10%
    如果缓冲区大小设置了百分百则 indices.memory.min_index_buffer_si
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值