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 |