google / tcmalloc

Apache License 2.0
4.31k stars 463 forks source link

tcmalloc central cache too large memory #211

Closed vinllen closed 10 months ago

vinllen commented 10 months ago

I've no idea whether it's a bug, my gperftools version is 2.7 that is a bit older. The tcmalloc_aggressive_decommit option is enabled in my program so that the page heap freelist is always 0. However, the Bytes in central cache freelist is increasing. In my understanding, the central cache freelist memory will be released to the page heap if possible. Is there any bug in this version?

My program is a database server that the memory is used in the database(Rocksdb) cache and the RPC object cache.

inf 11-06 14:57:57.375136 (43775) (xxx.cc:2080) @server try to release memory, stats: ------------------------------------------------
MALLOC:    67735200248 (64597.3 MiB) Bytes in use by application
MALLOC: +            0 (    0.0 MiB) Bytes in page heap freelist
MALLOC: +  22108187760 (21084.0 MiB) Bytes in central cache freelist
MALLOC: +     11706368 (   11.2 MiB) Bytes in transfer cache freelist
MALLOC: +    278442392 (  265.5 MiB) Bytes in thread cache freelists
MALLOC: +    279707648 (  266.8 MiB) Bytes in malloc metadata
MALLOC:   ------------
MALLOC: =  90413244416 (86224.8 MiB) Actual memory used (physical + swap)
MALLOC: +   9610149888 ( 9165.0 MiB) Bytes released to OS (aka unmapped)
MALLOC:   ------------
MALLOC: = 100023394304 (95389.7 MiB) Virtual address space used
MALLOC:
MALLOC:        3000222              Spans in use
MALLOC:             54              Thread heaps in use
MALLOC:           8192              Tcmalloc page size
------------------------------------------------
Call ReleaseFreeMemory() to release freelist memory to the OS (via madvise()).
Bytes released to the OS take up virtual address space but no physical memory.
------------------------------------------------
Total size of freelists for per-thread caches,
transfer cache, and central cache, by size class
------------------------------------------------
class   1 [        8 bytes ] :    21361 objs;   0.2 MiB;   0.2 cum MiB
class   2 [       16 bytes ] :    29667 objs;   0.5 MiB;   0.6 cum MiB
class   3 [       32 bytes ] :   257858 objs;   7.9 MiB;   8.5 cum MiB
class   4 [       48 bytes ] :   355021 objs;  16.3 MiB;  24.7 cum MiB
class   5 [       64 bytes ] :    68419 objs;   4.2 MiB;  28.9 cum MiB
class   6 [       80 bytes ] :  5573785 objs; 425.2 MiB; 454.2 cum MiB
class   7 [       96 bytes ] :  5522152 objs; 505.6 MiB; 959.7 cum MiB
class   8 [      112 bytes ] :    91204 objs;   9.7 MiB; 969.5 cum MiB
class   9 [      128 bytes ] :    29513 objs;   3.6 MiB; 973.1 cum MiB
class  10 [      144 bytes ] :     6069 objs;   0.8 MiB; 973.9 cum MiB
class  11 [      160 bytes ] :     8225 objs;   1.3 MiB; 975.2 cum MiB
class  12 [      176 bytes ] :     2978 objs;   0.5 MiB; 975.7 cum MiB
class  13 [      192 bytes ] :     6978 objs;   1.3 MiB; 976.9 cum MiB
class  14 [      208 bytes ] :    14054 objs;   2.8 MiB; 979.7 cum MiB
class  15 [      224 bytes ] :    19161 objs;   4.1 MiB; 983.8 cum MiB
class  16 [      240 bytes ] :     9707 objs;   2.2 MiB; 986.0 cum MiB
class  17 [      256 bytes ] :     7163 objs;   1.7 MiB; 987.8 cum MiB
class  18 [      288 bytes ] :     7566 objs;   2.1 MiB; 989.9 cum MiB
class  19 [      320 bytes ] :    30165 objs;   9.2 MiB; 999.1 cum MiB
class  20 [      352 bytes ] :    18737 objs;   6.3 MiB; 1005.4 cum MiB
class  21 [      384 bytes ] :    14498 objs;   5.3 MiB; 1010.7 cum MiB
class  22 [      416 bytes ] :    20243 objs;   8.0 MiB; 1018.7 cum MiB
class  23 [      448 bytes ] :    12474 objs;   5.3 MiB; 1024.0 cum MiB
class  24 [      480 bytes ] :    10273 objs;   4.7 MiB; 1028.7 cum MiB
class  25 [      512 bytes ] :    16358 objs;   8.0 MiB; 1036.7 cum MiB
class  26 [      576 bytes ] :     9413 objs;   5.2 MiB; 1041.9 cum MiB
class  27 [      640 bytes ] :    39807 objs;  24.3 MiB; 1066.2 cum MiB
class  28 [      704 bytes ] :    11967 objs;   8.0 MiB; 1074.2 cum MiB
class  29 [      768 bytes ] :    11134 objs;   8.2 MiB; 1082.4 cum MiB
class  30 [      896 bytes ] :     7233 objs;   6.2 MiB; 1088.6 cum MiB
class  31 [     1024 bytes ] :     4699 objs;   4.6 MiB; 1093.1 cum MiB
class  32 [     1152 bytes ] :     2105 objs;   2.3 MiB; 1095.5 cum MiB
class  33 [     1280 bytes ] :     1794 objs;   2.2 MiB; 1097.6 cum MiB
class  34 [     1408 bytes ] :     2381 objs;   3.2 MiB; 1100.8 cum MiB
class  35 [     1536 bytes ] :     1205 objs;   1.8 MiB; 1102.6 cum MiB
class  36 [     1792 bytes ] :     1972 objs;   3.4 MiB; 1106.0 cum MiB
class  37 [     2048 bytes ] :      914 objs;   1.8 MiB; 1107.8 cum MiB
class  38 [     2304 bytes ] :      691 objs;   1.5 MiB; 1109.3 cum MiB
class  39 [     2560 bytes ] :      500 objs;   1.2 MiB; 1110.5 cum MiB
class  40 [     2816 bytes ] :      689 objs;   1.9 MiB; 1112.4 cum MiB
class  41 [     3072 bytes ] :      624 objs;   1.8 MiB; 1114.2 cum MiB
class  42 [     3328 bytes ] :      421 objs;   1.3 MiB; 1115.5 cum MiB
class  43 [     4096 bytes ] :  3136588 objs; 12252.3 MiB; 13367.8 cum MiB
class  44 [     4608 bytes ] :  1354698 objs; 5953.3 MiB; 19321.1 cum MiB
class  45 [     5120 bytes ] :   100494 objs; 490.7 MiB; 19811.8 cum MiB
class  46 [     6144 bytes ] :    48944 objs; 286.8 MiB; 20098.6 cum MiB
class  47 [     6656 bytes ] :    17417 objs; 110.6 MiB; 20209.1 cum MiB
class  48 [     8192 bytes ] :    18110 objs; 141.5 MiB; 20350.6 cum MiB
class  49 [     9216 bytes ] :     2884 objs;  25.3 MiB; 20375.9 cum MiB
class  50 [    10240 bytes ] :     1464 objs;  14.3 MiB; 20390.2 cum MiB
class  51 [    12288 bytes ] :     1121 objs;  13.1 MiB; 20403.4 cum MiB
class  52 [    13312 bytes ] :      474 objs;   6.0 MiB; 20409.4 cum MiB
class  53 [    16384 bytes ] :      163 objs;   2.5 MiB; 20411.9 cum MiB
class  54 [    20480 bytes ] :      403 objs;   7.9 MiB; 20419.8 cum MiB
class  55 [    24576 bytes ] :       50 objs;   1.2 MiB; 20421.0 cum MiB
class  56 [    26624 bytes ] :       64 objs;   1.6 MiB; 20422.6 cum MiB
class  57 [    32768 bytes ] :      107 objs;   3.3 MiB; 20426.0 cum MiB
class  58 [    40960 bytes ] :       48 objs;   1.9 MiB; 20427.8 cum MiB
class  59 [    49152 bytes ] :       29 objs;   1.4 MiB; 20429.2 cum MiB
class  60 [    57344 bytes ] :       37 objs;   2.0 MiB; 20431.2 cum MiB
class  61 [    65536 bytes ] :      128 objs;   8.0 MiB; 20439.2 cum MiB
class  62 [    73728 bytes ] :       37 objs;   2.6 MiB; 20441.8 cum MiB
class  63 [    81920 bytes ] :       13 objs;   1.0 MiB; 20442.8 cum MiB
class  64 [    90112 bytes ] :       19 objs;   1.6 MiB; 20444.5 cum MiB
class  65 [    98304 bytes ] :        7 objs;   0.7 MiB; 20445.1 cum MiB
class  66 [   106496 bytes ] :       10 objs;   1.0 MiB; 20446.1 cum MiB
class  67 [   114688 bytes ] :       19 objs;   2.1 MiB; 20448.2 cum MiB
class  68 [   122880 bytes ] :       11 objs;   1.3 MiB; 20449.5 cum MiB
class  69 [   131072 bytes ] :       56 objs;   7.0 MiB; 20456.5 cum MiB
class  70 [   139264 bytes ] :       32 objs;   4.2 MiB; 20460.8 cum MiB
class  71 [   147456 bytes ] :       16 objs;   2.2 MiB; 20463.0 cum MiB
class  72 [   155648 bytes ] :       19 objs;   2.8 MiB; 20465.8 cum MiB
class  73 [   163840 bytes ] :        5 objs;   0.8 MiB; 20466.6 cum MiB
class  74 [   172032 bytes ] :        1 objs;   0.2 MiB; 20466.8 cum MiB
class  75 [   180224 bytes ] :        1 objs;   0.2 MiB; 20466.9 cum MiB
class  77 [   196608 bytes ] :        1 objs;   0.2 MiB; 20467.1 cum MiB
class  79 [   212992 bytes ] :        2 objs;   0.4 MiB; 20467.5 cum MiB
class  80 [   221184 bytes ] :        1 objs;   0.2 MiB; 20467.7 cum MiB
class  81 [   229376 bytes ] :       12 objs;   2.6 MiB; 20470.4 cum MiB
class  82 [   237568 bytes ] :        2 objs;   0.5 MiB; 20470.8 cum MiB
class  83 [   245760 bytes ] :        2 objs;   0.5 MiB; 20471.3 cum MiB
class  85 [   262144 bytes ] :       31 objs;   7.8 MiB; 20479.0 cum MiB
------------------------------------------------
PageHeap: 44 sizes;    0.0 MiB free; 9165.0 MiB unmapped
------------------------------------------------
     1 pages *  65552 spans ~  512.1 MiB;  512.1 MiB cum; unmapped:  512.1 MiB;  512.1 MiB cum
     2 pages * 150244 spans ~ 2347.6 MiB; 2859.7 MiB cum; unmapped: 2347.6 MiB; 2859.7 MiB cum
     3 pages *  36749 spans ~  861.3 MiB; 3721.0 MiB cum; unmapped:  861.3 MiB; 3721.0 MiB cum
     4 pages *  14419 spans ~  450.6 MiB; 4171.6 MiB cum; unmapped:  450.6 MiB; 4171.6 MiB cum
     5 pages *   5476 spans ~  213.9 MiB; 4385.5 MiB cum; unmapped:  213.9 MiB; 4385.5 MiB cum
     6 pages *   2385 spans ~  111.8 MiB; 4497.3 MiB cum; unmapped:  111.8 MiB; 4497.3 MiB cum
     7 pages *   1203 spans ~   65.8 MiB; 4563.1 MiB cum; unmapped:   65.8 MiB; 4563.1 MiB cum
     8 pages *   1598 spans ~   99.9 MiB; 4663.0 MiB cum; unmapped:   99.9 MiB; 4663.0 MiB cum
     9 pages *    672 spans ~   47.2 MiB; 4710.2 MiB cum; unmapped:   47.2 MiB; 4710.2 MiB cum
    10 pages *    360 spans ~   28.1 MiB; 4738.3 MiB cum; unmapped:   28.1 MiB; 4738.3 MiB cum
    11 pages *    264 spans ~   22.7 MiB; 4761.0 MiB cum; unmapped:   22.7 MiB; 4761.0 MiB cum
    12 pages *    216 spans ~   20.2 MiB; 4781.3 MiB cum; unmapped:   20.2 MiB; 4781.3 MiB cum
    13 pages *    837 spans ~   85.0 MiB; 4866.3 MiB cum; unmapped:   85.0 MiB; 4866.3 MiB cum
    14 pages *    221 spans ~   24.2 MiB; 4890.4 MiB cum; unmapped:   24.2 MiB; 4890.4 MiB cum
    15 pages *    175 spans ~   20.5 MiB; 4911.0 MiB cum; unmapped:   20.5 MiB; 4911.0 MiB cum
    16 pages *    508 spans ~   63.5 MiB; 4974.5 MiB cum; unmapped:   63.5 MiB; 4974.5 MiB cum
    17 pages *    902 spans ~  119.8 MiB; 5094.2 MiB cum; unmapped:  119.8 MiB; 5094.2 MiB cum
    18 pages *     30 spans ~    4.2 MiB; 5098.5 MiB cum; unmapped:    4.2 MiB; 5098.5 MiB cum
    24 pages *      1 spans ~    0.2 MiB; 5098.7 MiB cum; unmapped:    0.2 MiB; 5098.7 MiB cum
    35 pages *      1 spans ~    0.3 MiB; 5098.9 MiB cum; unmapped:    0.3 MiB; 5098.9 MiB cum
    71 pages *      1 spans ~    0.6 MiB; 5099.5 MiB cum; unmapped:    0.6 MiB; 5099.5 MiB cum
    89 pages *      1 spans ~    0.7 MiB; 5100.2 MiB cum; unmapped:    0.7 MiB; 5100.2 MiB cum
    90 pages *      1 spans ~    0.7 MiB; 5100.9 MiB cum; unmapped:    0.7 MiB; 5100.9 MiB cum
    91 pages *      1 spans ~    0.7 MiB; 5101.6 MiB cum; unmapped:    0.7 MiB; 5101.6 MiB cum
    92 pages *      1 spans ~    0.7 MiB; 5102.3 MiB cum; unmapped:    0.7 MiB; 5102.3 MiB cum
    93 pages *      1 spans ~    0.7 MiB; 5103.0 MiB cum; unmapped:    0.7 MiB; 5103.0 MiB cum
    95 pages *      1 spans ~    0.7 MiB; 5103.8 MiB cum; unmapped:    0.7 MiB; 5103.8 MiB cum
   101 pages *      2 spans ~    1.6 MiB; 5105.4 MiB cum; unmapped:    1.6 MiB; 5105.4 MiB cum
   106 pages *      2 spans ~    1.7 MiB; 5107.0 MiB cum; unmapped:    1.7 MiB; 5107.0 MiB cum
   107 pages *      2 spans ~    1.7 MiB; 5108.7 MiB cum; unmapped:    1.7 MiB; 5108.7 MiB cum
   108 pages *      3 spans ~    2.5 MiB; 5111.2 MiB cum; unmapped:    2.5 MiB; 5111.2 MiB cum
   109 pages *      1 spans ~    0.9 MiB; 5112.1 MiB cum; unmapped:    0.9 MiB; 5112.1 MiB cum
   111 pages *      2 spans ~    1.7 MiB; 5113.8 MiB cum; unmapped:    1.7 MiB; 5113.8 MiB cum
   112 pages *      1 spans ~    0.9 MiB; 5114.7 MiB cum; unmapped:    0.9 MiB; 5114.7 MiB cum
   114 pages *      1 spans ~    0.9 MiB; 5115.6 MiB cum; unmapped:    0.9 MiB; 5115.6 MiB cum
   115 pages *      1 spans ~    0.9 MiB; 5116.5 MiB cum; unmapped:    0.9 MiB; 5116.5 MiB cum
   116 pages *      1 spans ~    0.9 MiB; 5117.4 MiB cum; unmapped:    0.9 MiB; 5117.4 MiB cum
   117 pages *      6 spans ~    5.5 MiB; 5122.9 MiB cum; unmapped:    5.5 MiB; 5122.9 MiB cum
   118 pages *     62 spans ~   57.2 MiB; 5180.0 MiB cum; unmapped:   57.2 MiB; 5180.0 MiB cum
   119 pages *      9 spans ~    8.4 MiB; 5188.4 MiB cum; unmapped:    8.4 MiB; 5188.4 MiB cum
   120 pages *      4 spans ~    3.8 MiB; 5192.1 MiB cum; unmapped:    3.8 MiB; 5192.1 MiB cum
   121 pages *     11 spans ~   10.4 MiB; 5202.5 MiB cum; unmapped:   10.4 MiB; 5202.5 MiB cum
   123 pages *      9 spans ~    8.6 MiB; 5211.2 MiB cum; unmapped:    8.6 MiB; 5211.2 MiB cum
   124 pages *      3 spans ~    2.9 MiB; 5214.1 MiB cum; unmapped:    2.9 MiB; 5214.1 MiB cum
>128   large *     18 spans ~ 3950.9 MiB; 9165.0 MiB cum; unmapped: 3950.9 MiB; 9165.0 MiB cum

After calling ReleaseFreeMemory(), the central cache memory still not decreased

inf 11-06 14:57:57.403737 (43775) (xxx.cc:2083) @server after release memory, stats: ------------------------------------------------
MALLOC:    67735204248 (64597.3 MiB) Bytes in use by application
MALLOC: +            0 (    0.0 MiB) Bytes in page heap freelist
MALLOC: +  22108187760 (21084.0 MiB) Bytes in central cache freelist
MALLOC: +     11706368 (   11.2 MiB) Bytes in transfer cache freelist
MALLOC: +    278438392 (  265.5 MiB) Bytes in thread cache freelists
MALLOC: +    279707648 (  266.8 MiB) Bytes in malloc metadata
MALLOC:   ------------
MALLOC: =  90413244416 (86224.8 MiB) Actual memory used (physical + swap)
MALLOC: +   9610149888 ( 9165.0 MiB) Bytes released to OS (aka unmapped)
MALLOC:   ------------
MALLOC: = 100023394304 (95389.7 MiB) Virtual address space used
MALLOC:
MALLOC:        3000222              Spans in use
MALLOC:             54              Thread heaps in use
MALLOC:           8192              Tcmalloc page size
------------------------------------------------
Call ReleaseFreeMemory() to release freelist memory to the OS (via madvise()).
Bytes released to the OS take up virtual address space but no physical memory.
------------------------------------------------
Total size of freelists for per-thread caches,
transfer cache, and central cache, by size class
------------------------------------------------
class   1 [        8 bytes ] :    21361 objs;   0.2 MiB;   0.2 cum MiB
class   2 [       16 bytes ] :    29667 objs;   0.5 MiB;   0.6 cum MiB
class   3 [       32 bytes ] :   257858 objs;   7.9 MiB;   8.5 cum MiB
class   4 [       48 bytes ] :   355021 objs;  16.3 MiB;  24.7 cum MiB
class   5 [       64 bytes ] :    68419 objs;   4.2 MiB;  28.9 cum MiB
class   6 [       80 bytes ] :  5573785 objs; 425.2 MiB; 454.2 cum MiB
class   7 [       96 bytes ] :  5522153 objs; 505.6 MiB; 959.7 cum MiB
class   8 [      112 bytes ] :    91204 objs;   9.7 MiB; 969.5 cum MiB
class   9 [      128 bytes ] :    29513 objs;   3.6 MiB; 973.1 cum MiB
class  10 [      144 bytes ] :     6069 objs;   0.8 MiB; 973.9 cum MiB
class  11 [      160 bytes ] :     8225 objs;   1.3 MiB; 975.2 cum MiB
class  12 [      176 bytes ] :     2978 objs;   0.5 MiB; 975.7 cum MiB
class  13 [      192 bytes ] :     6978 objs;   1.3 MiB; 976.9 cum MiB
class  14 [      208 bytes ] :    14054 objs;   2.8 MiB; 979.7 cum MiB
class  15 [      224 bytes ] :    19161 objs;   4.1 MiB; 983.8 cum MiB
class  16 [      240 bytes ] :     9707 objs;   2.2 MiB; 986.0 cum MiB
class  17 [      256 bytes ] :     7163 objs;   1.7 MiB; 987.8 cum MiB
class  18 [      288 bytes ] :     7566 objs;   2.1 MiB; 989.9 cum MiB
class  19 [      320 bytes ] :    30165 objs;   9.2 MiB; 999.1 cum MiB
class  20 [      352 bytes ] :    18737 objs;   6.3 MiB; 1005.4 cum MiB
class  21 [      384 bytes ] :    14498 objs;   5.3 MiB; 1010.7 cum MiB
class  22 [      416 bytes ] :    20243 objs;   8.0 MiB; 1018.7 cum MiB
class  23 [      448 bytes ] :    12474 objs;   5.3 MiB; 1024.0 cum MiB
class  24 [      480 bytes ] :    10273 objs;   4.7 MiB; 1028.7 cum MiB
class  25 [      512 bytes ] :    16358 objs;   8.0 MiB; 1036.7 cum MiB
class  26 [      576 bytes ] :     9413 objs;   5.2 MiB; 1041.9 cum MiB
class  27 [      640 bytes ] :    39807 objs;  24.3 MiB; 1066.2 cum MiB
class  28 [      704 bytes ] :    11967 objs;   8.0 MiB; 1074.2 cum MiB
class  29 [      768 bytes ] :    11134 objs;   8.2 MiB; 1082.4 cum MiB
class  30 [      896 bytes ] :     7233 objs;   6.2 MiB; 1088.6 cum MiB
class  31 [     1024 bytes ] :     4699 objs;   4.6 MiB; 1093.1 cum MiB
class  32 [     1152 bytes ] :     2105 objs;   2.3 MiB; 1095.5 cum MiB
class  33 [     1280 bytes ] :     1794 objs;   2.2 MiB; 1097.7 cum MiB
class  34 [     1408 bytes ] :     2381 objs;   3.2 MiB; 1100.8 cum MiB
class  35 [     1536 bytes ] :     1205 objs;   1.8 MiB; 1102.6 cum MiB
class  36 [     1792 bytes ] :     1972 objs;   3.4 MiB; 1106.0 cum MiB
class  37 [     2048 bytes ] :      914 objs;   1.8 MiB; 1107.8 cum MiB
class  38 [     2304 bytes ] :      691 objs;   1.5 MiB; 1109.3 cum MiB
class  39 [     2560 bytes ] :      500 objs;   1.2 MiB; 1110.5 cum MiB
class  40 [     2816 bytes ] :      689 objs;   1.9 MiB; 1112.4 cum MiB
class  41 [     3072 bytes ] :      624 objs;   1.8 MiB; 1114.2 cum MiB
class  42 [     3328 bytes ] :      421 objs;   1.3 MiB; 1115.5 cum MiB
class  43 [     4096 bytes ] :  3136588 objs; 12252.3 MiB; 13367.8 cum MiB
class  44 [     4608 bytes ] :  1354698 objs; 5953.3 MiB; 19321.1 cum MiB
class  45 [     5120 bytes ] :   100494 objs; 490.7 MiB; 19811.8 cum MiB
class  46 [     6144 bytes ] :    48944 objs; 286.8 MiB; 20098.6 cum MiB
class  47 [     6656 bytes ] :    17417 objs; 110.6 MiB; 20209.1 cum MiB
class  48 [     8192 bytes ] :    18111 objs; 141.5 MiB; 20350.6 cum MiB
class  49 [     9216 bytes ] :     2884 objs;  25.3 MiB; 20376.0 cum MiB
class  50 [    10240 bytes ] :     1464 objs;  14.3 MiB; 20390.2 cum MiB
class  51 [    12288 bytes ] :     1120 objs;  13.1 MiB; 20403.4 cum MiB
class  52 [    13312 bytes ] :      474 objs;   6.0 MiB; 20409.4 cum MiB
class  53 [    16384 bytes ] :      163 objs;   2.5 MiB; 20411.9 cum MiB
class  54 [    20480 bytes ] :      403 objs;   7.9 MiB; 20419.8 cum MiB
class  55 [    24576 bytes ] :       50 objs;   1.2 MiB; 20421.0 cum MiB
class  56 [    26624 bytes ] :       64 objs;   1.6 MiB; 20422.6 cum MiB
class  57 [    32768 bytes ] :      107 objs;   3.3 MiB; 20426.0 cum MiB
class  58 [    40960 bytes ] :       48 objs;   1.9 MiB; 20427.8 cum MiB
class  59 [    49152 bytes ] :       29 objs;   1.4 MiB; 20429.2 cum MiB
class  60 [    57344 bytes ] :       37 objs;   2.0 MiB; 20431.2 cum MiB
class  61 [    65536 bytes ] :      128 objs;   8.0 MiB; 20439.2 cum MiB
class  62 [    73728 bytes ] :       37 objs;   2.6 MiB; 20441.8 cum MiB
class  63 [    81920 bytes ] :       13 objs;   1.0 MiB; 20442.8 cum MiB
class  64 [    90112 bytes ] :       19 objs;   1.6 MiB; 20444.5 cum MiB
class  65 [    98304 bytes ] :        7 objs;   0.7 MiB; 20445.1 cum MiB
class  66 [   106496 bytes ] :       10 objs;   1.0 MiB; 20446.1 cum MiB
class  67 [   114688 bytes ] :       19 objs;   2.1 MiB; 20448.2 cum MiB
class  68 [   122880 bytes ] :       11 objs;   1.3 MiB; 20449.5 cum MiB
class  69 [   131072 bytes ] :       56 objs;   7.0 MiB; 20456.5 cum MiB
class  70 [   139264 bytes ] :       32 objs;   4.2 MiB; 20460.7 cum MiB
class  71 [   147456 bytes ] :       16 objs;   2.2 MiB; 20463.0 cum MiB
class  72 [   155648 bytes ] :       19 objs;   2.8 MiB; 20465.8 cum MiB
class  73 [   163840 bytes ] :        5 objs;   0.8 MiB; 20466.6 cum MiB
class  74 [   172032 bytes ] :        1 objs;   0.2 MiB; 20466.8 cum MiB
class  75 [   180224 bytes ] :        1 objs;   0.2 MiB; 20466.9 cum MiB
class  77 [   196608 bytes ] :        1 objs;   0.2 MiB; 20467.1 cum MiB
class  79 [   212992 bytes ] :        2 objs;   0.4 MiB; 20467.5 cum MiB
class  80 [   221184 bytes ] :        1 objs;   0.2 MiB; 20467.7 cum MiB
class  81 [   229376 bytes ] :       12 objs;   2.6 MiB; 20470.4 cum MiB
class  82 [   237568 bytes ] :        2 objs;   0.5 MiB; 20470.8 cum MiB
class  83 [   245760 bytes ] :        2 objs;   0.5 MiB; 20471.3 cum MiB
class  85 [   262144 bytes ] :       31 objs;   7.8 MiB; 20479.0 cum MiB
------------------------------------------------
PageHeap: 44 sizes;    0.0 MiB free; 9165.0 MiB unmapped
------------------------------------------------
     1 pages *  65552 spans ~  512.1 MiB;  512.1 MiB cum; unmapped:  512.1 MiB;  512.1 MiB cum
     2 pages * 150244 spans ~ 2347.6 MiB; 2859.7 MiB cum; unmapped: 2347.6 MiB; 2859.7 MiB cum
     3 pages *  36749 spans ~  861.3 MiB; 3721.0 MiB cum; unmapped:  861.3 MiB; 3721.0 MiB cum
     4 pages *  14419 spans ~  450.6 MiB; 4171.6 MiB cum; unmapped:  450.6 MiB; 4171.6 MiB cum
     5 pages *   5476 spans ~  213.9 MiB; 4385.5 MiB cum; unmapped:  213.9 MiB; 4385.5 MiB cum
     6 pages *   2385 spans ~  111.8 MiB; 4497.3 MiB cum; unmapped:  111.8 MiB; 4497.3 MiB cum
     7 pages *   1203 spans ~   65.8 MiB; 4563.1 MiB cum; unmapped:   65.8 MiB; 4563.1 MiB cum
     8 pages *   1598 spans ~   99.9 MiB; 4663.0 MiB cum; unmapped:   99.9 MiB; 4663.0 MiB cum
     9 pages *    672 spans ~   47.2 MiB; 4710.2 MiB cum; unmapped:   47.2 MiB; 4710.2 MiB cum
    10 pages *    360 spans ~   28.1 MiB; 4738.3 MiB cum; unmapped:   28.1 MiB; 4738.3 MiB cum
    11 pages *    264 spans ~   22.7 MiB; 4761.0 MiB cum; unmapped:   22.7 MiB; 4761.0 MiB cum
    12 pages *    216 spans ~   20.2 MiB; 4781.3 MiB cum; unmapped:   20.2 MiB; 4781.3 MiB cum
    13 pages *    837 spans ~   85.0 MiB; 4866.3 MiB cum; unmapped:   85.0 MiB; 4866.3 MiB cum
    14 pages *    221 spans ~   24.2 MiB; 4890.4 MiB cum; unmapped:   24.2 MiB; 4890.4 MiB cum
    15 pages *    175 spans ~   20.5 MiB; 4911.0 MiB cum; unmapped:   20.5 MiB; 4911.0 MiB cum
    16 pages *    508 spans ~   63.5 MiB; 4974.5 MiB cum; unmapped:   63.5 MiB; 4974.5 MiB cum
    17 pages *    902 spans ~  119.8 MiB; 5094.2 MiB cum; unmapped:  119.8 MiB; 5094.2 MiB cum
    18 pages *     30 spans ~    4.2 MiB; 5098.5 MiB cum; unmapped:    4.2 MiB; 5098.5 MiB cum
    24 pages *      1 spans ~    0.2 MiB; 5098.7 MiB cum; unmapped:    0.2 MiB; 5098.7 MiB cum
    35 pages *      1 spans ~    0.3 MiB; 5098.9 MiB cum; unmapped:    0.3 MiB; 5098.9 MiB cum
    71 pages *      1 spans ~    0.6 MiB; 5099.5 MiB cum; unmapped:    0.6 MiB; 5099.5 MiB cum
    89 pages *      1 spans ~    0.7 MiB; 5100.2 MiB cum; unmapped:    0.7 MiB; 5100.2 MiB cum
    90 pages *      1 spans ~    0.7 MiB; 5100.9 MiB cum; unmapped:    0.7 MiB; 5100.9 MiB cum
    91 pages *      1 spans ~    0.7 MiB; 5101.6 MiB cum; unmapped:    0.7 MiB; 5101.6 MiB cum
    92 pages *      1 spans ~    0.7 MiB; 5102.3 MiB cum; unmapped:    0.7 MiB; 5102.3 MiB cum
    93 pages *      1 spans ~    0.7 MiB; 5103.0 MiB cum; unmapped:    0.7 MiB; 5103.0 MiB cum
    95 pages *      1 spans ~    0.7 MiB; 5103.8 MiB cum; unmapped:    0.7 MiB; 5103.8 MiB cum
   101 pages *      2 spans ~    1.6 MiB; 5105.4 MiB cum; unmapped:    1.6 MiB; 5105.4 MiB cum
   106 pages *      2 spans ~    1.7 MiB; 5107.0 MiB cum; unmapped:    1.7 MiB; 5107.0 MiB cum
   107 pages *      2 spans ~    1.7 MiB; 5108.7 MiB cum; unmapped:    1.7 MiB; 5108.7 MiB cum
   108 pages *      3 spans ~    2.5 MiB; 5111.2 MiB cum; unmapped:    2.5 MiB; 5111.2 MiB cum
   109 pages *      1 spans ~    0.9 MiB; 5112.1 MiB cum; unmapped:    0.9 MiB; 5112.1 MiB cum
   111 pages *      2 spans ~    1.7 MiB; 5113.8 MiB cum; unmapped:    1.7 MiB; 5113.8 MiB cum
   112 pages *      1 spans ~    0.9 MiB; 5114.7 MiB cum; unmapped:    0.9 MiB; 5114.7 MiB cum
   114 pages *      1 spans ~    0.9 MiB; 5115.6 MiB cum; unmapped:    0.9 MiB; 5115.6 MiB cum
   115 pages *      1 spans ~    0.9 MiB; 5116.5 MiB cum; unmapped:    0.9 MiB; 5116.5 MiB cum
   116 pages *      1 spans ~    0.9 MiB; 5117.4 MiB cum; unmapped:    0.9 MiB; 5117.4 MiB cum
   117 pages *      6 spans ~    5.5 MiB; 5122.9 MiB cum; unmapped:    5.5 MiB; 5122.9 MiB cum
   118 pages *     62 spans ~   57.2 MiB; 5180.0 MiB cum; unmapped:   57.2 MiB; 5180.0 MiB cum
   119 pages *      9 spans ~    8.4 MiB; 5188.4 MiB cum; unmapped:    8.4 MiB; 5188.4 MiB cum
   120 pages *      4 spans ~    3.8 MiB; 5192.1 MiB cum; unmapped:    3.8 MiB; 5192.1 MiB cum
   121 pages *     11 spans ~   10.4 MiB; 5202.5 MiB cum; unmapped:   10.4 MiB; 5202.5 MiB cum
   123 pages *      9 spans ~    8.6 MiB; 5211.2 MiB cum; unmapped:    8.6 MiB; 5211.2 MiB cum
   124 pages *      3 spans ~    2.9 MiB; 5214.1 MiB cum; unmapped:    2.9 MiB; 5214.1 MiB cum
>128   large *     18 spans ~ 3950.9 MiB; 9165.0 MiB cum; unmapped: 3950.9 MiB; 9165.0 MiB cum
vinllen commented 10 months ago

I think the only reason is the memory fragmentation rate is too high, but it doesn't make sense in my scenrio.

ckennelly commented 10 months ago

gperftools is a separate repository. It is based on a many year old version of TCMalloc.

Memory being retained in the CentralFreeList likely indicates that spans are not being fully reassembled--some of the objects are still allocated (or in another cache), so the span accumulates free objects but is not fully returned to the PageHeap.