Hi Bryan, Leif, weijin: 1) There is a disadvantage of using ProxyAllocator to manage memory: It's hard to configure the size of each ProxyAllocator pool, unsuitable size may cause memory wast or bad performance.
2) The reclaimable freelist we pushed recently is implemented as thread-local pool, feel free to try it. On Mon, Feb 4, 2013 at 10:08 AM, weijin (JIRA) <[email protected]> wrote: > > [ > https://issues.apache.org/jira/browse/TS-1684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13569953#comment-13569953] > > weijin commented on TS-1684: > ---------------------------- > > good idea, the call ink_freelist_new/ink_freelist_free can be > significantly reduced by making the ProxyAllocator as cache of global > freelist. > > > 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 > -- Yunkai Zhang Work at Taobao
