Elasticsearch indices.breaker.total.limit Setting

The indices.breaker.total.limit setting in Elasticsearch controls the overall memory limit for all circuit breakers combined. It acts as a parent circuit breaker, preventing the sum of all individual circuit breakers from exceeding a specified percentage of the JVM heap.

  • Default value: 70% of JVM heap
  • Possible values: Any percentage between 0 and 100
  • Recommendation: Keep the default unless you have specific memory requirements

This setting is crucial for preventing out-of-memory errors in Elasticsearch. It ensures that the combined memory usage of all circuit breakers doesn't exceed a safe threshold, maintaining cluster stability and performance.

Example

To change the indices.breaker.total.limit setting:

indices.breaker.total.limit: 80%

Increasing this limit might be necessary if you're experiencing frequent circuit breaker errors and have available heap space. However, setting it too high can risk JVM out-of-memory errors.

Common Issues

  • Setting the limit too low can cause frequent circuit breaker errors, impacting query performance
  • Setting the limit too high may lead to JVM out-of-memory errors

Do's and Don'ts

Do:

  • Monitor your cluster's memory usage before adjusting this setting
  • Consider the memory requirements of other processes running on the same machine
  • Adjust gradually and observe the impact on your cluster's performance

Don't:

  • Set the limit above 95% of the JVM heap
  • Ignore other circuit breaker settings when adjusting this one
  • Change this setting without understanding your cluster's memory usage patterns

Frequently Asked Questions

Q: How does indices.breaker.total.limit relate to other circuit breaker settings?
A: The indices.breaker.total.limit acts as an overall cap for all individual circuit breakers. While each circuit breaker has its own limit, the total of all breakers cannot exceed this global limit.

Q: Can increasing indices.breaker.total.limit improve query performance?
A: Increasing this limit may improve performance if you're experiencing frequent circuit breaker errors. However, it's crucial to ensure you have enough available heap space to safely increase the limit.

Q: What happens if the total memory usage exceeds the indices.breaker.total.limit?
A: If the total memory usage exceeds this limit, Elasticsearch will throw a circuit breaker exception, rejecting the operation that would have caused the limit to be exceeded.

Q: How often should I review and adjust the indices.breaker.total.limit setting?
A: Review this setting periodically, especially after significant changes to your cluster's workload or hardware. However, avoid frequent adjustments without careful monitoring and testing.

Q: Is it safe to set indices.breaker.total.limit to 100%?
A: Setting indices.breaker.total.limit to 100% is not recommended. It removes the safety net against out-of-memory errors and can lead to JVM crashes. Always leave some headroom for other processes and unexpected memory spikes.

Pulse - Elasticsearch Operations Done Right

Stop googling errors and staring at dashboards.

Free Trial

Subscribe to the Pulse Newsletter

Get early access to new Pulse features, insightful blogs & exclusive events , webinars, and workshops.