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