You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Bryan Call <bc...@yahoo-inc.com> on 2011/09/09 18:56:21 UTC

benchmarking 3.1.0 and 3.0.1

I ran some benchmarks on the 3.0.1 release and the 3.1.0 release with 
different options on and off.  This benchmark was done with 1 client, 1 
proxy, and 3 origin servers.  The servers are 12 core (24 
hyper-threaded) boxes and are the beefiest I could get a hold of.  The 
response was only a 1 byte response, so that I wouldn't make the NIC a 
bottleneck.

There are a couple things to note in the benchmark results:

 1. There is a huge impact in performance in 3.0.1 and 3.1.0 having
    logging on and only proxying to the origin server.  Turning off
    logging increases the performance by 185%.  I think there can be
    some large performance gains to be won here.
 2. There was a huge performance decrease from 3.0.1 to 3.1.0 with just
    turning off the cache and only proxying to the origin.  3.1.0 is
    only performing at 14% of what 3.0.1 is.  Turning off shared
    sessions removes this decrease in performance, so some of the work
    that Leif is doing might resolve this.  I am going to benchmark his
    patch today.
 3. http_load (the client) is making ~5x more connections on 3.1.0 then
    3.0.1.  Traffic Server might be closing the client connections, but
    I didn't look into this.
 4. There are some cores in 3.0.1 and 3.1.0 only when logging is turned
    off.  I believe there might be a race condition and can only been
    seen at high loads, so it shouldn't been seen too often.

Details of the hardware and the client commands are in the spreadsheet 
(open/libreoffice).  Overall I think the numbers are pretty good.

-- 
-Bryan


Re: benchmarking 3.1.0 and 3.0.1

Posted by Bryan Call <bc...@yahoo-inc.com>.
Yes, these are the only settings that I was playing with:

CONFIG proxy.config.http.share_server_sessions INT 0
CONFIG proxy.config.http.cache.http INT 0
CONFIG proxy.config.log.logging_enabled INT 0
CONFIG proxy.config.log.max_space_mb_for_logs INT 250000

I have been able to push this server over 200k rps with tweaking the 
thread count, using taskset, turning off logging, tweaking the client 
count to reduce contention but have high concurrency, and only hitting 
cache.  These benchmarks were more to see how different options effect 
performance and how they have changed over release versions.

-Bryan

On 09/09/2011 03:30 PM, Chris Reynolds wrote:
> To clarify when you say logging off do you mean:
> CONFIG proxy.config.log.logging_enabled INT 0
>
> Thanks,
>
> Chris Reynolds.
>
> On 9 September 2011 18:36, Leif Hedstrom <zwoop@apache.org 
> <ma...@apache.org>> wrote:
>
>     On 09/09/2011 10:56 AM, Bryan Call wrote:
>
>         I ran some benchmarks on the 3.0.1 release and the 3.1.0
>         release with different options on and off.  This benchmark was
>         done with 1 client, 1 proxy, and 3 origin servers.  The
>         servers are 12 core (24 hyper-threaded) boxes and are the
>         beefiest I could get a hold of.  The response was only a 1
>         byte response, so that I wouldn't make the NIC a bottleneck.
>
>         There are a couple things to note in the benchmark results:
>
>          1. There is a huge impact in performance in 3.0.1 and 3.1.0
>         having
>
>            logging on and only proxying to the origin server.  Turning off
>            logging increases the performance by 185%.  I think there
>         can be
>            some large performance gains to be won here.
>          2. There was a huge performance decrease from 3.0.1 to 3.1.0
>         with
>
>            just turning off the cache and only proxying to the origin.
>          3.1.0
>            is only performing at 14% of what 3.0.1 is.  Turning off shared
>            sessions removes this decrease in performance, so some of
>         the work
>            that Leif is doing might resolve this.  I am going to benchmark
>            his patch today.
>
>
>
>     I'm wondering if we should back out the two-line "fix" from
>     TS-880, and instead do the proposed fix from TS-924 ?
>
>     Thoughts?
>
>     -- leif
>
>


-- 
-Bryan


Re: benchmarking 3.1.0 and 3.0.1

Posted by Chris Reynolds <sh...@gmail.com>.
To clarify when you say logging off do you mean:
CONFIG proxy.config.log.logging_enabled INT 0

Thanks,

Chris Reynolds.

On 9 September 2011 18:36, Leif Hedstrom <zw...@apache.org> wrote:

> On 09/09/2011 10:56 AM, Bryan Call wrote:
>
>> I ran some benchmarks on the 3.0.1 release and the 3.1.0 release with
>> different options on and off.  This benchmark was done with 1 client, 1
>> proxy, and 3 origin servers.  The servers are 12 core (24 hyper-threaded)
>> boxes and are the beefiest I could get a hold of.  The response was only a 1
>> byte response, so that I wouldn't make the NIC a bottleneck.
>>
>> There are a couple things to note in the benchmark results:
>>
>>  1. There is a huge impact in performance in 3.0.1 and 3.1.0 having
>>
>>    logging on and only proxying to the origin server.  Turning off
>>    logging increases the performance by 185%.  I think there can be
>>    some large performance gains to be won here.
>>  2. There was a huge performance decrease from 3.0.1 to 3.1.0 with
>>
>>    just turning off the cache and only proxying to the origin.  3.1.0
>>    is only performing at 14% of what 3.0.1 is.  Turning off shared
>>    sessions removes this decrease in performance, so some of the work
>>    that Leif is doing might resolve this.  I am going to benchmark
>>    his patch today.
>>
>>
>
> I'm wondering if we should back out the two-line "fix" from TS-880, and
> instead do the proposed fix from TS-924 ?
>
> Thoughts?
>
> -- leif
>
>

Re: benchmarking 3.1.0 and 3.0.1

Posted by John Plevyak <jp...@acm.org>.
I would agree.  This "fix" is likely to be very expensive.  Each thread is
managing 100s to 1000s of connections, and with
the current connection sharing model, many will be cross thread (a bad
thing).  With this "fix" each of those is
going  to knock the other thread off the poll loop which results in an
expensive loop through the active connections.

On an unloaded system it is OK, to do this because the processors are
otherwise unused, but on a loaded system
it is going to cause the threads to spin.

I would suggest using the TS-924 patch then backing this out. Alternatively
we could modify the patch so that
it was adaptive to load.  TS=924 is a better way to address this.

john

On Fri, Sep 9, 2011 at 10:36 AM, Leif Hedstrom <zw...@apache.org> wrote:

> On 09/09/2011 10:56 AM, Bryan Call wrote:
>
>> I ran some benchmarks on the 3.0.1 release and the 3.1.0 release with
>> different options on and off.  This benchmark was done with 1 client, 1
>> proxy, and 3 origin servers.  The servers are 12 core (24 hyper-threaded)
>> boxes and are the beefiest I could get a hold of.  The response was only a 1
>> byte response, so that I wouldn't make the NIC a bottleneck.
>>
>> There are a couple things to note in the benchmark results:
>>
>>  1. There is a huge impact in performance in 3.0.1 and 3.1.0 having
>>
>>    logging on and only proxying to the origin server.  Turning off
>>    logging increases the performance by 185%.  I think there can be
>>    some large performance gains to be won here.
>>  2. There was a huge performance decrease from 3.0.1 to 3.1.0 with
>>
>>    just turning off the cache and only proxying to the origin.  3.1.0
>>    is only performing at 14% of what 3.0.1 is.  Turning off shared
>>    sessions removes this decrease in performance, so some of the work
>>    that Leif is doing might resolve this.  I am going to benchmark
>>    his patch today.
>>
>>
>
> I'm wondering if we should back out the two-line "fix" from TS-880, and
> instead do the proposed fix from TS-924 ?
>
> Thoughts?
>
> -- leif
>
>

Re: benchmarking 3.1.0 and 3.0.1

Posted by Leif Hedstrom <zw...@apache.org>.
On 09/09/2011 10:56 AM, Bryan Call wrote:
> I ran some benchmarks on the 3.0.1 release and the 3.1.0 release with 
> different options on and off.  This benchmark was done with 1 client, 
> 1 proxy, and 3 origin servers.  The servers are 12 core (24 
> hyper-threaded) boxes and are the beefiest I could get a hold of.  The 
> response was only a 1 byte response, so that I wouldn't make the NIC a 
> bottleneck.
>
> There are a couple things to note in the benchmark results:
>
>  1. There is a huge impact in performance in 3.0.1 and 3.1.0 having
>     logging on and only proxying to the origin server.  Turning off
>     logging increases the performance by 185%.  I think there can be
>     some large performance gains to be won here.
>  2. There was a huge performance decrease from 3.0.1 to 3.1.0 with
>     just turning off the cache and only proxying to the origin.  3.1.0
>     is only performing at 14% of what 3.0.1 is.  Turning off shared
>     sessions removes this decrease in performance, so some of the work
>     that Leif is doing might resolve this.  I am going to benchmark
>     his patch today.
>


I'm wondering if we should back out the two-line "fix" from TS-880, and 
instead do the proposed fix from TS-924 ?

Thoughts?

-- leif