Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-88728

Make heap profiler configurable with a runtime server parameter

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0, 8.0.0-rc4
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Service Arch
    • Fully Compatible
    • v8.0
    • Service Arch 2024-04-29
    • 35

      Right now, the heap profiler (which was initially introduced in SERVER-20239), is only configurable at startup through a server parameter. This used to be a restriction due to the way that tcmalloc allowed us to hook into and sample allocations.

      However, after the new tcmalloc was introduced, the current implementation of the heap profiler could be enabled/disabled at runtime, rather than only at startup. This could really help with diagnosability, and we could build external automation around this to get a sample of allocations when memory usage is very high.

      We should change the heapProfilingEnabled and heapProfilingSampleIntervalBytes server parameters to be configurable at runtime.

      We should also evaluate the performance when the heap profiler is enabled-- right now the common knowledge is that it is too slow to be enabled for a long time in customer deployments, but that may no longer be true, and we could be even more proactive about enabling this during periods of high memory usage.

            Assignee:
            joseph.prince@mongodb.com Joseph Prince
            Reporter:
            erin.mcnulty@mongodb.com Erin McNulty
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: