断路器设置
Elasticsearch 包含多个断路器,用于防止操作导致 OutOfMemoryError。每个断路器指定它可以使用多少内存的限制。此外,还有一个父级断路器,用于指定可跨所有断路器使用的内存总量。
父路由器
可以使用以下设置配置父级断路器:
•indices.breaker.total.use_real_memory 确定父断路器是否应考虑实际内存使用量 ( true) 或仅考虑子断路器保留的数量 ( false)。默认为true.•indices.breaker.total.limit 整个父断路器的启动限制。如果indices.breaker.total.use_real_memory是 ,则默认为 JVM 堆的 70% false。如果indices.breaker.total.use_real_memory 是true,则默认为 JVM 堆的 95%。
字段数据断路器
字段数据断路器估计将字段加载到字段数据缓存中所需的堆内存。如果加载该字段会导致缓存超出预定义的内存限制,则断路器将停止操作并返回错误。•indices.breaker.fielddata.limit 字段数据断路器的限制。默认为 JVM 堆的 40%。•indices.breaker.fielddata.overhead 一个常数,与所有现场数据估计相乘以确定最终估计。默认为1.03.
请求断路器
请求断路器允许 Elasticsearch 防止每个请求的数据结构(例如,用于在请求期间计算聚合的内存)超过一定的内存量。
•indices.breaker.request.limit 请求断路器的限制,默认为 JVM 堆的 60%。indices.breaker.request.overhead 所有请求估计乘以确定最终估计的常数。默认为1。
reference:
https://www.elastic.co/guide/en/elasticsearch/reference/current/circuit-breaker.html