trafficserver-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Peach <>
Subject Re: Tuning ATS for performance testing.
Date Tue, 22 Oct 2013 16:36:07 GMT

On Oct 22, 2013, at 6:17 AM, Pavel Kazlenka <>

> Thank you all for your replies. I have new questions here.
> I'm trying to estimate performance of single ATS 'network' (main) thread (hope I'm using
correct term). My thread-related configuration:
> ONFIG proxy.config.exec_thread.autoconfig INT 0
> CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 1.000000
> CONFIG proxy.config.exec_thread.limit INT 1
> CONFIG proxy.config.accept_threads INT 1
> CONFIG proxy.config.cache.threads_per_disk INT 0
> CONFIG proxy.config.ssl.number.threads INT 0
> CONFIG proxy.config.task_threads INT 1
> #Caching is off:
> CONFIG proxy.config.http.cache.http INT 0
> I've found that memory-related options have a great impact on performance:
> CONFIG proxy.config.thread.default.stacksize INT 536870912

512MB stack size for thread? Wow, that seems like an awful lot.

> CONFIG proxy.config.allocator.thread_freelist_size INT 524288
> CONFIG proxy.config.system.mmap_max INT 5368709120

This setting ends up calling mallopt(M_MMAP_MAX), see <>.
From the description in the man page, I'd be surprised if setting this was useful in most

> My problem is that default values for the variables given above are extremely conservative.
On the other hand, it's hard to pick up the good values for such a great range. Especially
while these options are not really good documented.
> So my questions are:
> 1) What should be good values for machine with 6GB RAM for the three variables above
(assuming that the only purpose of machine is running single thread of ATS to forward traffic
with high rate and minimal delay)?
> 2) Is there any guide/detailed documentation on these options?
> 3) May be there's some kind of formulas based on common sense that could help to choose
variables values based on proxy load (requests per second)?

proxy.config.allocator.thread_freelist_size seems like a reasonable setting to tune. This
is going to control how much memory will be permanently allocated to per-thread magazines.
It's a tuning balance between how much memory you need to allocate to servicing transactions
and how much memory should be used for RAM cache and other processes that are running on the

FWIW I run my systems with proxy.config.allocator.thread_freelist_size=16K, though my workload
and hardware configuration is pretty different from yours.

> Device under test is Ubuntu 12.04 LTS, 64 bit, 6GB RAM, expected load is up to 15k requests
per second.
> TIA,
> Pavel
> On 10/17/2013 10:07 PM, Igor Galić wrote:
>> ----- Original Message -----
>>> Thank you Igor.
>>> I've rebuilt ATS with hwloc and things became a bit better. Now I see
>>> that load is being balanced fairly between configured number of threads
>> Thank you very much for this feedback.
>> I knew that this code paths have an impact (I've hacked bits of it too)
>> but since I always compile --with-hwloc, I've never saw the difference.
>> ++i
>> Igor Galić
>> Tel: +43 (0) 664 886 22 883
>> Mail:
>> URL:
>> GPG: 6880 4155 74BD FD7C B515  2EA5 4B1D 9E08 A097 C9AE

View raw message