Hi Solr Dev Community,

I'm currently evaluating the behavior of Solr version *9.6.0* under load,
specifically focusing on the impact of enabling the *CPU Circuit Breaker*.

The configuration used is:

<circuitBreaker class="org.apache.solr.util.circuitbreaker.CPUCircuitBreaker">
    <double name="threshold">90</double></circuitBreaker>

I'm polling CPU usage every second from the following endpoint:
http://{SolrHost}:8983/solr/admin/metrics?prefix=os.systemCpuLoad&wt=json

I ran two tests under identical conditions:

   -

   8 parallel scripts
   -

   Each script sends 50 requests per iteration
   -

   100 iterations
   -

   Total requests: 50 × 100 × 8 = 40,000

Test 1: Circuit Breaker Enabled (Threshold: 90%)

   -

   Time Taken: ~3 minutes
   -

   HTTP 200 responses: 31,394
   -

   HTTP 429 responses: 8,615
   -

   CPU Usage: Peaks between 80–100

[image: image.png]
Test 2: Circuit Breaker Disabled

   -

   Time Taken: ~4 minutes
   -

   HTTP 200 responses: 40,000
   -

   HTTP 429 responses: 0
   -

   CPU Usage: Hovers around 50%

[image: image.png]
Observation:

With the circuit breaker enabled, the overall time reduces slightly, but
the system returns a significant number of 429 responses and shows frequent
CPU saturation. Without the circuit breaker, all requests succeed, and CPU
usage remains moderate, albeit with slightly increased overall execution
time.

I will attach CPU usage graphs and relevant screenshots for reference.

Would appreciate your thoughts on:

   -

   Is this expected behavior under CPU circuit breaker logic?
   -

   Are there recommended tuning strategies to balance throughput and
   protection?
   -

   Could there be overhead introduced by the breaker itself?

Thanks,
Puneet

Reply via email to