Elasticsearch有许多circuit breaker,来阻止某些操作导致内存移除错误。

每一个circuit breaker指定了它最多可用多少内存。

另外,有一个父级breaker指定了所有breakers总共可以使用多少内存。

除非另有说明,这些设置可以被动态更改。

设置说明
indices.breaker.total.use_real_memory(父)

静态设置。设定父级breaker是使用真实内存使用率(true),或者只是考虑被子breakers实际占用的内存量(false)。

默认是true。

indices.breaker.total.limit(父)如果上面的设置为true,那么设置上限为jvm内存的95%;如果上面的设置为false,那么设置上限为jvm的70%
indices.breaker.fielddata.limit估算将数据加载内存使用的内存量,默认限制为jvm的40%。如果超过了限制,则会抛出异常。
indices.breaker.fielddata.overhead预估内存量乘以该值作为最终的预估量。默认是1.03
indices.breaker.request.limit请求的限制默认为jvm的60%
indices.breaker.request.overhead估算值乘积系数。默认是1


  • No labels