[ 
https://issues.apache.org/jira/browse/TS-5095?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Susan Hinrichs reassigned TS-5095:
----------------------------------

    Assignee: Susan Hinrichs

> IOBufferReader::read_avail adds considerably to CPU utilization
> ---------------------------------------------------------------
>
>                 Key: TS-5095
>                 URL: https://issues.apache.org/jira/browse/TS-5095
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core
>            Reporter: Susan Hinrichs
>            Assignee: Susan Hinrichs
>
> When installing a new build of our ATS, we noticed that the CPU utilization 
> was higher than a non-upgraded peer in the same pod. Looking at perf top for 
> that process we saw that 10-17% of CPU was spent in 
> IOBufferReader::read_avail. In the older system, that function didn't show up 
> in the top couple screens of perf top.
> I tracked it down to an "ink_assert(read_avail() > 0)" call in 
> IOBufferReader::consume. We didn't have the debug asserts compiled in, but 
> the parameter arguments are still being executed. Commented out the 
> ink_assert call and the CPU utilization went back to normal.  We later found 
> a similar growth in IOBufferReader::read() due to the use of 
> IOBufferReader::read_avail.
> It looks like the issue is compiling with openssl 1.0.2 instead of openssl 
> 1.0.1.  We have been running against the openssl 1.0.2 library but were still 
> compiling against openssl 1.0.1.  We recently upgraded our builds to compile 
> against the new openssl as well. 
> I built a version of the older source against openssl 1.0.2 and it had very 
> similar performance to what I was seeing with the newer source.
> Still don't know why compiling against the newer openssl would make such a 
> difference.  But it is easy enough to rework these use cases to take 
> read_avail (which walks the block chain) out of the fast path.  This should 
> be a good optimization in any case.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to