Elasticsearch indices.breaker.total.limit Setting

Pulse - Elasticsearch Operations Done Right

On this page

Example Common Issues Do's and Don'ts Frequently Asked Questions

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.

Subscribe to the Pulse Newsletter

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