#### 断路器设置
##### 断路器目的
ES通过断路器的设置,来保护集群内存不超过设定值,从而保证集群的稳定性。
Elasticsearch 包含多个断路器,用于防止操作导致 OutOfMemoryError。每个断路器指定它可以使用多少内存的限制。此外,还有一个父级断路器,用于指定可跨所有断路器使用的内存总量。
##### 断路器种类
###### 父断路器(parent circuit breaker)
可以使用以下设置配置父级断路器:
indices.breaker.total.use_real_memory
确定父断路器是否应考虑实际内存使用量 ( true) 或仅考虑子断路器保留的数量 ( false)。默认为true.
indices.breaker.total.limit
整个父断路器的启动限制。
如果indices.breaker.total.use_real_memory是 false ,则默认为 JVM 堆的 70%。
如果indices.breaker.total.use_real_memory 是true,则默认为 JVM 堆的 95%。
###### 字段数据断路器(Field data circuit breaker)
字段数据断路器估计将字段加载到字段数据缓存中所需的堆内存。如果加载该字段会导致缓存超出预定义的内存限制,则断路器将停止操作并返回错误。
indices.breaker.fielddata.limit
字段数据断路器的限制。默认为 JVM 堆的 40%。
indices.breaker.fielddata.overhead
一个常数,与所有现场数据估计相乘以确定最终估计。默认为1.03.
##