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

Leif Hedstrom commented on TS-1684:
-----------------------------------

Cool. This fits in well with the ideas we've been discussing around getting ATS 
to behave better with NUMA architecture as well. I discussed this with john a 
while back, and he seemed OK with this as well.

The downside is possibly larger memory footprints. One thing we might want to 
consider is to make the size of the ProxyAllocators configurable (instead of 
hardcoded at 500). When full, they would fall back to the slower global 
allocators.
                
> Reduce the usage of global allocation/free lists - switch to using local 
> thread allocation/free lists
> -----------------------------------------------------------------------------------------------------
>
>                 Key: TS-1684
>                 URL: https://issues.apache.org/jira/browse/TS-1684
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Bryan Call
>
> When running benchmarks ink_freelist_new() normally shows up as one of if not 
> the number one function in the code using the most CPU.  Currently ATS uses 
> global free lists (via ClassAllocator<>, Allocator, and 
> SparceClassAllocator<>) for memory allocation for some of its memory 
> allocation.
> Here is a list of how frequently the type of allocations are used and the 
> "name" given to the allocator.  This is a benchmark for a small object in 
> cache fetched 100k times.
>  400000 ink_freelist_new: hdrHeap
>  300000 ink_freelist_new: hdrStrHeap
>  203541 ink_freelist_new: ioBlockAllocator
>  199616 proxy allocator thread_alloc: eventAllocator
>  103554 ink_freelist_new: ioDataAllocator
>  103554 ink_freelist_new: ioBufAllocator[5]
>  100100 ink_freelist_new: ioAllocator
>  100000 proxy allocator thread_alloc: hdrHeap
>  100000 proxy allocator thread_alloc: cacheVConnection
>  100000 ink_freelist_new: httpSMAllocator
>  100000 ink_freelist_new: ArenaBlock
>   18507 ink_freelist_new: mutexAllocator
>    4772 ink_freelist_new: eventAllocator
>     162 ink_freelist_new: cacheVConnection
>     102 ink_freelist_new: netVCAllocator
>     100 proxy allocator init thread_alloc: httpClientSessionAllocator
>     100 ink_freelist_new: httpClientSessionAllocator
>       1 proxy allocator thread_alloc: RamCacheCLFUSEntry
>       1 ink_freelist_new: RamCacheCLFUSEntry
>       1 ink_freelist_new: hostDBContAllocator

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to