Memory fragmentation and segments_watermark looks unnormal after Erlang VM runs several days

13 views
Skip to first unread message

zhenb...@gmail.com

unread,
Mar 12, 2018, 5:34:23 AM3/12/18
to Erlang Questions
Hi
I find some memory fragmentation in my RabbitMQ use case, I have to restart the MQ Server when the VM uses all the memory, and look inside the VM for memory allocation information.
when I run `erlang:system_info({allocator, mseg_alloc})`, find that the segments_watermark value of  `instance 8` is much bigger than others.

Is there anyone can explain this situation and how to tune the VM?
Are there more documents, except erts_alloc library doc?

[{instance,0,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,0},
                {cache_hits,941},
                {segments,4,5,6},
                {segments_watermark,4},
                {segments_size,50855936,51118080,52166656}]},
           {calls,
               [{mseg_alloc,0,49377},
                {mseg_dealloc,0,49373},
                {mseg_realloc,0,0},
                {mseg_create_resize,0,0},
                {mseg_create,0,48436},
                {mseg_destroy,0,48435},
                {mseg_recreate,0,0},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,48677}]}]}]},
 {instance,1,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,1},
                {cache_hits,3057062},
                {segments,250,352,352},
                {segments_watermark,263},
                {segments_size,1806991360,2338910208,2338910208}]},
           {calls,
               [{mseg_alloc,0,3531015},
                {mseg_dealloc,0,3530765},
                {mseg_realloc,0,2260884},
                {mseg_create_resize,0,0},
                {mseg_create,0,473953},
                {mseg_destroy,0,864206},
                {mseg_recreate,0,274497},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,377084}]}]}]},
 {instance,2,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,4},
                {cache_hits,2995954},
                {segments,248,326,326},
                {segments_watermark,248},
                {segments_size,1730301952,2226151424,2226151424}]},
           {calls,
               [{mseg_alloc,0,3447226},
                {mseg_dealloc,0,3446978},
                {mseg_realloc,0,2213346},
                {mseg_create_resize,0,0},
                {mseg_create,0,451272},
                {mseg_destroy,0,829755},
                {mseg_recreate,0,260571},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,360126}]}]}]},
 {instance,3,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,10},
                {cache_hits,2973645},
                {segments,244,329,329},
                {segments_watermark,250},
                {segments_size,1715187712,2327683072,2327683072}]},
           {calls,
               [{mseg_alloc,0,3427273},
                {mseg_dealloc,0,3427029},
                {mseg_realloc,0,2197632},
                {mseg_create_resize,0,0},
                {mseg_create,0,453628},
                {mseg_destroy,0,832139},
                {mseg_recreate,0,262618},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,359357}]}]}]},
 {instance,4,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,9},
                {cache_hits,2936753},
                {segments,242,308,308},
                {segments_watermark,243},
                {segments_size,1564782592,2017394688,2017394688}]},
           {calls,
               [{mseg_alloc,0,3385122},
                {mseg_dealloc,0,3384880},
                {mseg_realloc,0,2174083},
                {mseg_create_resize,0,0},
                {mseg_create,0,448369},
                {mseg_destroy,0,822621},
                {mseg_recreate,0,257969},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,359337}]}]}]},
 {instance,5,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,10},
                {cache_hits,2794418},
                {segments,194,345,345},
                {segments_watermark,231},
                {segments_size,1468456960,2402676736,2402676736}]},
           {calls,
               [{mseg_alloc,0,3233108},
                {mseg_dealloc,0,3232914},
                {mseg_realloc,0,2078520},
                {mseg_create_resize,0,0},
                {mseg_create,0,438690},
                {mseg_destroy,0,799075},
                {mseg_recreate,0,245207},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,352811}]}]}]},
 {instance,6,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,10},
                {cache_hits,2585681},
                {segments,267,358,358},
                {segments_watermark,273},
                {segments_size,1880784896,2578903040,2578903040}]},
           {calls,
               [{mseg_alloc,0,3005700},
                {mseg_dealloc,0,3005433},
                {mseg_realloc,0,1934731},
                {mseg_create_resize,0,0},
                {mseg_create,0,420019},
                {mseg_destroy,0,756630},
                {mseg_recreate,0,226125},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,337129}]}]}]},
 {instance,7,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,10},
                {cache_hits,2412971},
                {segments,218,280,280},
                {segments_watermark,227},
                {segments_size,1654861824,1935527936,1935527936}]},
           {calls,
               [{mseg_alloc,0,2812117},
                {mseg_dealloc,0,2811899},
                {mseg_realloc,0,1818138},
                {mseg_create_resize,0,0},
                {mseg_create,0,399146},
                {mseg_destroy,0,715738},
                {mseg_recreate,0,208611},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,322198}]}]}]},
 {instance,8,
     [{version,"0.9"},
      {options,[{amcbf,4194304},{rmcbf,20},{mcs,10}]},
      {memkind,
          [{name,"all memory"},
           {status,
               [{cached_segments,8},
                {cache_hits,1852493},
                {segments,186,260,260},
                {segments_watermark,18446744073709262216},
                {segments_size,1327538176,1755115520,1755115520}]},
           {calls,
               [{mseg_alloc,0,2188222},
                {mseg_dealloc,0,2188036},
                {mseg_realloc,0,1426432},
                {mseg_create_resize,0,0},
                {mseg_create,0,335729},
                {mseg_destroy,0,583219},
                {mseg_recreate,0,154659},
                {mseg_clear_cache,0,0},
                {mseg_check_cache,0,291076}]}]}]}]

Reply all
Reply to author
Forward
0 new messages