ElasticSearch 消耗大量内存在segmentsFixedBitSetMemory
Elasticsearch | 作者 zplinti1 | 发布于2016年04月28日 | 阅读数:5009
我的环境是1.5.2 每台机器32G,分配给ES 16G,发现 segmentsFixedBitSetMemory 每台机器都占用了2G左右,调查发现,每个index都用了20M 的segmentsFixedBitSetMemory,即使某个index只有1个文档,也占用了20M的segmentsFixedBitSetMemory。
进一步调查知道 segmentsFixedBitSetMemory 用于nested 相关的查询。做了个测试:
1. 往ES里插入数据,数据对应的mapping不包含任何nested。结果是segmentsFixedBitSetMemory 一点没被用
2. 往另一个ES里插入同样的数据,数据对应的mapping不包含任何nested。不同在于创建mapping时,多创建一个没有任何(数据)用的mapping,这个mapping里包含nested 字段。结果是每个index的segmentsFixedBitSetMemory 都被消耗了一些,甚至某个index的mappings里并没有包含任何nested mapping,一样也消耗了segmentsFixedBitSetMemory。
问题是:
1. 为何index没有任何nested 相关的数据,也会消耗segmentsFixedBitSetMemory?
2. 为何index 没有任何nested field,也会消耗segmentsFixedBitSetMemory?
3. 如何减少segmentsFixedBitSetMemory?
进一步调查知道 segmentsFixedBitSetMemory 用于nested 相关的查询。做了个测试:
1. 往ES里插入数据,数据对应的mapping不包含任何nested。结果是segmentsFixedBitSetMemory 一点没被用
2. 往另一个ES里插入同样的数据,数据对应的mapping不包含任何nested。不同在于创建mapping时,多创建一个没有任何(数据)用的mapping,这个mapping里包含nested 字段。结果是每个index的segmentsFixedBitSetMemory 都被消耗了一些,甚至某个index的mappings里并没有包含任何nested mapping,一样也消耗了segmentsFixedBitSetMemory。
问题是:
1. 为何index没有任何nested 相关的数据,也会消耗segmentsFixedBitSetMemory?
2. 为何index 没有任何nested field,也会消耗segmentsFixedBitSetMemory?
3. 如何减少segmentsFixedBitSetMemory?
2 个回复
helloes
赞同来自:
ES1.7.5已经修复了
medcl - 今晚打老虎。
赞同来自: