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

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

被折叠的 条评论
为什么被折叠?



