Version 2021

Memory Usage Breakdown

When the Intelligence server enters Memory Contract Manager (MCM) denial state or shuts down due to an extended timeout limit of the MCM denial state, it may be difficult to understand and troubleshoot the issue. Starting in MicroStrategy 2021 Update 1, the overall memory usage breakdown information is logged by default in the DSSErrors.log to help troubleshoot such issue.

When is it Logged? 

A breakdown of memory usage is logged when:

  • The Intelligence server enters MCM denial state for the first time. There are two cases of this:

    1. The Intelligence server has never entered MCM denial state and this is the first time doing so.

    2. The Intelligence server has entered MCM denial state, but recovers and then works as expected. After some time, it enters MCM denial state again.

    However, if the Intelligence server has been in MCM denial state, to the subsequent continuous request rejects, a memory usage breakdown is not logged.

  • The Intelligence server shuts down due to being in MCM denial state for an extended time.

    If the Intelligence server stalls for too long due to MCM denial, it shuts down. For this shutdown, a memory usage breakdown is logged as well.

What Information is Collected?

The Intelligence server does two things when outputting memory usage breakdown information in DSSErrors.log.

  • Collect system memory usage counters and format them in a string. Key system memory counters are collected and divided into two parts:

    1. Virtual memory usage counters:

      • Total System Virtual Memory (GB)
      • Total In Use Virtual Memory for Other Processes (MB)
      • Total In Use Virtual Memory for Intelligence Server (MB) Including MMF Virtual Size
      • Total SmartHeap Cached Memory Utilization (MB)
      • Max Memory Available to the Intelligence Server Based on the Memory Contract Manager (MB)
    2. Physical memory usage counters:
      • Total System Physical Memory (GB)
      • Total In Use Physical Memory for Intelligence Server (MB)
      • Total In Use Physical Memory for Other Processes (MB)
      • Total Physical Memory for File Caches (MB)

        This is specific to Linux.

  • Collect object cache related memory usage counters and format them in a string. Key object cache related memory counters are collected from the Performance Monitor. These counters include:
    • Report Caches In Memory (MB)
    • Document Caches In Memory (MB)
    • Cube Caches In Memory (MB)
    • Object Server Caches In Memory (MB)
    • Element Server Caches In Memory (MB)
    • Total Working Set Memory Utilization (MB)
    • Total Size Of Physical Memory Used For Memory Mapped Files (MB)
    • MMF Virtual Memory Size (MB)
    • Cube Size Growth In Memory Including Indexes (MB)
      • Memory Used by Cube Element Blocks (KB)
      • Memory Used by Cube Index Keys (KB)
      • Memory Used by Cube Rowmaps (KB)

    The following table maps the item names in the memory usage breakdown information to the names in the MicroStrategy Diagnostics and Performance Logging Tool.

    Memory Usage Breakdown Information in DSSErros.log

    MicroStrategy Diagnostics and Performance Logging Tool

    Report Caches In Memory (MB)

    Memory Used by Report Caches (MB)

    Document Caches In Memory (MB)

    Total Size (in MB) of Document Caches Loaded in Memory

    Cube Caches In Memory (MB)

    Total Size (in MB) of Cubes Loaded in Memory

    Object Server Caches In Memory (MB)

    Object Server Cache (KB)

    Element Server Caches In Memory (MB)

    Element Server Cache (KB)

    Cube Components Using Memory-mapped Files (MB)

    Total Size of Physical Memory (Workingset/RSS) Used for Memory Mapped Files (MB)

     

    Total Working Set Memory Utilization (MB)

    Working Set Cache RAM Usage (MB)

    MMF Virtual Memory Size (MB)

    Total Memory Mapped Files Size (MB)

    Cube Size Growth In Memory Including Indexes (MB)

     

    Memory Used by Cube Element Blocks (KB)

    Memory Used by Cube Index Keys (KB)

    Memory Used by Cube Rowmaps(KB)

All collected memory counters are formatted to a message. In the messages, the counters are hierarchically ordered.

The following are complete output examples of the memory breakdown information on Linux and Windows.

All values in the MCM memory breakdown information are rounded to the integer part. For example, the total system physical memory of 15.999 GB appears as 15 GB in the memory breakdown information.