memory management, cut down memory waste ?
------------------------------------------

                 Key: TS-1006
                 URL: https://issues.apache.org/jira/browse/TS-1006
             Project: Traffic Server
          Issue Type: Improvement
          Components: Core
    Affects Versions: 3.1.1
            Reporter: Zhao Yongming
            Assignee: Zhao Yongming
             Fix For: 3.1.3


when we review the memory usage in the production, there is something abnormal, 
ie, looks like TS take much memory than index data + common system waste, and 
here is some memory dump result by set "proxy.config.dump_mem_info_frequency"

1, the one on a not so busy forwarding system:
physics memory: 32G
RAM cache: 22G
DISK: 6140 GB
average_object_size 64000
{code}
     allocated      |        in-use      | type size  |   free list name
--------------------|--------------------|------------|----------------------------------
          671088640 |           37748736 |    2097152 | 
memory/ioBufAllocator[14]
         2248146944 |         2135949312 |    1048576 | 
memory/ioBufAllocator[13]
         1711276032 |         1705508864 |     524288 | 
memory/ioBufAllocator[12]
         1669332992 |         1667760128 |     262144 | 
memory/ioBufAllocator[11]
         2214592512 |         2211840000 |     131072 | 
memory/ioBufAllocator[10]
         2325741568 |         2323775488 |      65536 | memory/ioBufAllocator[9]
         2091909120 |         2089123840 |      32768 | memory/ioBufAllocator[8]
         1956642816 |         1956478976 |      16384 | memory/ioBufAllocator[7]
         2094530560 |         2094071808 |       8192 | memory/ioBufAllocator[6]
          356515840 |          355540992 |       4096 | memory/ioBufAllocator[5]
            1048576 |              14336 |       2048 | memory/ioBufAllocator[4]
             131072 |                  0 |       1024 | memory/ioBufAllocator[3]
              65536 |                  0 |        512 | memory/ioBufAllocator[2]
              32768 |                  0 |        256 | memory/ioBufAllocator[1]
              16384 |                  0 |        128 | memory/ioBufAllocator[0]
                  0 |                  0 |        576 | 
memory/ICPRequestCont_allocator
                  0 |                  0 |        112 | 
memory/ICPPeerReadContAllocator
                  0 |                  0 |        432 | 
memory/PeerReadDataAllocator
                  0 |                  0 |         32 | 
memory/MIMEFieldSDKHandle
                  0 |                  0 |        240 | memory/INKVConnAllocator
                  0 |                  0 |         96 | memory/INKContAllocator
               4096 |                  0 |         32 | memory/apiHookAllocator
                  0 |                  0 |        288 | memory/FetchSMAllocator
                  0 |                  0 |         80 | 
memory/prefetchLockHandlerAllocator
                  0 |                  0 |        176 | 
memory/PrefetchBlasterAllocator
                  0 |                  0 |         80 | 
memory/prefetchUrlBlaster
                  0 |                  0 |         96 | memory/blasterUrlList
                  0 |                  0 |         96 | 
memory/prefetchUrlEntryAllocator
                  0 |                  0 |        128 | 
memory/socksProxyAllocator
                  0 |                  0 |        144 | memory/ObjectReloadCont
            3258368 |             576016 |        592 | 
memory/httpClientSessionAllocator
             825344 |             139568 |        208 | 
memory/httpServerSessionAllocator
           22597632 |            1284848 |       9808 | memory/httpSMAllocator
                  0 |                  0 |         32 | 
memory/CacheLookupHttpConfigAllocator
                  0 |                  0 |       9856 | 
memory/httpUpdateSMAllocator
                  0 |                  0 |        128 | memory/RemapPluginsAlloc
                  0 |                  0 |         48 | 
memory/CongestRequestParamAllocator
                  0 |                  0 |        128 | 
memory/CongestionDBContAllocator
            5767168 |             704512 |       2048 | memory/hdrStrHeap
           18350080 |            1153024 |       2048 | memory/hdrHeap
              53248 |               2912 |        208 | 
memory/httpCacheAltAllocator
                  0 |                  0 |        112 | 
memory/OneWayTunnelAllocator
             157696 |               1232 |       1232 | 
memory/hostDBContAllocator
             102240 |              17040 |      17040 | memory/dnsBufAllocator
             323584 |                  0 |       1264 | memory/dnsEntryAllocator
                  0 |                  0 |         16 | 
memory/DNSRequestDataAllocator
                  0 |                  0 |       1072 | memory/SRVAllocator
                  0 |                  0 |         48 | 
memory/ClusterVConnectionCache::Entry
                  0 |                  0 |        560 | 
memory/cacheContAllocator
                  0 |                  0 |        112 | 
memory/inControlAllocator
                  0 |                  0 |        112 | 
memory/outControlAllocator
                  0 |                  0 |         32 | memory/byteBankAllocator
                  0 |                  0 |        576 | 
memory/clusterVCAllocator
                  0 |                  0 |         48 | memory/evacuationKey
               6144 |                  0 |         48 | memory/cacheRemoveCont
             270336 |             262560 |         96 | memory/evacuationBlock
            4997120 |            3968416 |        976 | memory/cacheVConnection
             798720 |             522080 |        160 | memory/openDirEntry
                  0 |                  0 |         64 | memory/RamCacheLRUEntry
           56426496 |           56426304 |         96 | 
memory/RamCacheCLFUSEntry
            9584640 |            6168000 |        960 | memory/netVCAllocator
                  0 |                  0 |        128 | 
memory/udpReadContAllocator
                  0 |                  0 |        128 | 
memory/udpWorkContinuationAllocator
                  0 |                  0 |        160 | 
memory/udpPacketAllocator
                  0 |                  0 |        304 | memory/socksAllocator
             139264 |              68544 |       1088 | memory/sslNetVCAllocator
                  0 |                  0 |        128 | 
memory/UDPIOEventAllocator
             671744 |             115520 |         64 | memory/ioBlockAllocator
           28305408 |           28301520 |         48 | memory/ioDataAllocator
            2273280 |             406320 |        240 | memory/ioAllocator
            1904640 |            1489920 |         80 | memory/mutexAllocator
            1105920 |             188544 |         96 | memory/eventAllocator
            2359296 |             129024 |       1024 | memory/ArenaBlock
{code}
this box will crash every 2days, so the memory waste may no that high


2, our production reverse system:
physics memory: 16G
RAM cache: 8G
DISK: 1516 GB
average_object_size 16384
and it run for a much long time:
{code}
     allocated      |        in-use      | type size  |   free list name
--------------------|--------------------|------------|----------------------------------
          805306368 |                  0 |    2097152 | 
memory/ioBufAllocator[14]
          738197504 |            8388608 |    1048576 | 
memory/ioBufAllocator[13]
         1258291200 |           46661632 |     524288 | 
memory/ioBufAllocator[12]
         1300234240 |          183762944 |     262144 | 
memory/ioBufAllocator[11]
         1170210816 |          466223104 |     131072 | 
memory/ioBufAllocator[10]
         1790967808 |         1223426048 |      65536 | memory/ioBufAllocator[9]
         2970615808 |         2601418752 |      32768 | memory/ioBufAllocator[8]
         2067791872 |         2044608512 |      16384 | memory/ioBufAllocator[7]
         1169424384 |         1169121280 |       8192 | memory/ioBufAllocator[6]
          711458816 |          710463488 |       4096 | memory/ioBufAllocator[5]
            1572864 |                  0 |       2048 | memory/ioBufAllocator[4]
             131072 |                  0 |       1024 | memory/ioBufAllocator[3]
              65536 |                  0 |        512 | memory/ioBufAllocator[2]
              32768 |                  0 |        256 | memory/ioBufAllocator[1]
              16384 |                  0 |        128 | memory/ioBufAllocator[0]
                  0 |                  0 |        576 | 
memory/ICPRequestCont_allocator
                  0 |                  0 |        112 | 
memory/ICPPeerReadContAllocator
                  0 |                  0 |        432 | 
memory/PeerReadDataAllocator
                  0 |                  0 |         32 | 
memory/MIMEFieldSDKHandle
                  0 |                  0 |        240 | memory/INKVConnAllocator
                  0 |                  0 |         96 | memory/INKContAllocator
               4096 |                  0 |         32 | memory/apiHookAllocator
                  0 |                  0 |        288 | memory/FetchSMAllocator
                  0 |                  0 |         80 | 
memory/prefetchLockHandlerAllocator
                  0 |                  0 |        176 | 
memory/PrefetchBlasterAllocator
                  0 |                  0 |         80 | 
memory/prefetchUrlBlaster
                  0 |                  0 |         96 | memory/blasterUrlList
                  0 |                  0 |         96 | 
memory/prefetchUrlEntryAllocator
                  0 |                  0 |        128 | 
memory/socksProxyAllocator
                  0 |                  0 |        144 | memory/ObjectReloadCont
            1136640 |             125504 |        592 | 
memory/httpClientSessionAllocator
             372736 |              27248 |        208 | 
memory/httpServerSessionAllocator
           11317248 |              39296 |       9824 | memory/httpSMAllocator
                  0 |                  0 |         32 | 
memory/CacheLookupHttpConfigAllocator
                  0 |                  0 |       9888 | 
memory/httpUpdateSMAllocator
                  0 |                  0 |        128 | memory/RemapPluginsAlloc
                  0 |                  0 |        512 | memory/HCSMAllocator
                  0 |                  0 |         48 | memory/VCEntryAllocator
                  0 |                  0 |         96 | memory/HCEntryAllocator
                  0 |                  0 |         64 | 
memory/HCHandlerAllocator
                  0 |                  0 |         48 | 
memory/CongestRequestParamAllocator
                  0 |                  0 |        128 | 
memory/CongestionDBContAllocator
            6029312 |             643072 |       2048 | memory/hdrStrHeap
            7077888 |             657408 |       2048 | memory/hdrHeap
              26624 |                208 |        208 | 
memory/httpCacheAltAllocator
                  0 |                  0 |        112 | 
memory/OneWayTunnelAllocator
             630784 |               1232 |       1232 | 
memory/hostDBContAllocator
             238560 |              17040 |      17040 | memory/dnsBufAllocator
             161792 |                  0 |       1264 | memory/dnsEntryAllocator
                  0 |                  0 |         16 | 
memory/DNSRequestDataAllocator
                  0 |                  0 |       1072 | memory/SRVAllocator
                  0 |                  0 |         48 | 
memory/ClusterVConnectionCache::Entry
                  0 |                  0 |        560 | 
memory/cacheContAllocator
                  0 |                  0 |        112 | 
memory/inControlAllocator
                  0 |                  0 |        112 | 
memory/outControlAllocator
                  0 |                  0 |         32 | memory/byteBankAllocator
                  0 |                  0 |        576 | 
memory/clusterVCAllocator
                  0 |                  0 |         48 | memory/evacuationKey
               6144 |                  0 |         48 | memory/cacheRemoveCont
           17006592 |           14972928 |         96 | memory/evacuationBlock
            1777664 |             759872 |        992 | memory/cacheVConnection
             307200 |             111520 |        160 | memory/openDirEntry
                  0 |                  0 |         64 | memory/RamCacheLRUEntry
          104275968 |          104274048 |         96 | 
memory/RamCacheCLFUSEntry
            3440640 |            1819200 |        960 | memory/netVCAllocator
                  0 |                  0 |        128 | 
memory/udpReadContAllocator
                  0 |                  0 |        128 | 
memory/udpWorkContinuationAllocator
                  0 |                  0 |        160 | 
memory/udpPacketAllocator
                  0 |                  0 |        304 | memory/socksAllocator
                  0 |                  0 |       1088 | memory/sslNetVCAllocator
                  0 |                  0 |        128 | 
memory/UDPIOEventAllocator
             237568 |              22528 |         64 | memory/ioBlockAllocator
           26087424 |           26081904 |         48 | memory/ioDataAllocator
             890880 |              84240 |        240 | memory/ioAllocator
            1525760 |            1403440 |         80 | memory/mutexAllocator
             565248 |             129696 |         96 | memory/eventAllocator
            1179648 |               4096 |       1024 | memory/ArenaBlock

{code}

our team is working on the memory free issue, trying to improve the memory 
management. and this a big project, the more input|comment the better.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to