[ 
https://issues.apache.org/jira/browse/SOLR-18241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18080963#comment-18080963
 ] 

Houston Putman commented on SOLR-18241:
---------------------------------------

To be even more explicit here, for relatively expensive queries with 
re-ranking, at 700 QPS the LoadAverageCircuitBreaker took up 90% of CPU cycles 
for the query execution path. Insane!
{quote}The javadocs for the underlying metric read 
"OperatingSystemMXBean.getSystemLoadAverage()" indicate that the value returned 
represents the average for the past minute.
{quote}
I was reading this too, and it looked like a rolling minute. So I don't think 
we could just refresh every minute. But refreshing every second should be fine 
I think?

Also the OperatingSystemMXBean.getSystemLoadAverage() part was taking 99% of 
LoadAverageCircuitBreaker.isTripped(), there was no issue with the thread local 
or other parts of the method.

> LoadAverageCircuitBreaker should cache LoadAverage measurements
> ---------------------------------------------------------------
>
>                 Key: SOLR-18241
>                 URL: https://issues.apache.org/jira/browse/SOLR-18241
>             Project: Solr
>          Issue Type: Improvement
>          Components: Circuit Breakers
>    Affects Versions: 10.0, main(11.0), 9.10.1
>            Reporter: Jason Gerlowski
>            Priority: Minor
>
> Each call to LoadAverageCircuitBreaker.isTripped() requests the current 
> system load average from the OS.
> This is cheap in isolation but quickly gets expensive when done concurrently 
> at a decent QPS.  We noticed this recently causing problems in a performance 
> test, where LoadAverageCircuitBreaker.isTripped() was accounting for over 
> half of the total CPU cycles!
> The javadocs for the underlying metric read 
> "OperatingSystemMXBean.getSystemLoadAverage()" indicate that the value 
> returned represents the average for the past minute.  This is large enough 
> that we should be able to take advantage of caching to reduce the number of 
> metric-reads being done.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to