MicroStrategy ONE

Potential Causes of Memory Depletion

Tasks and objects from the following categories are likely to consume the most memory in Intelligence Server:

Intelligence Server Memory Footprint

When Intelligence Server starts, several operations occur, all of which use memory. The following sections provide details:

Common factors for high memory usage on startup include:

  • Many data warehouse connection threads (approximately 1 MB/thread)
  • The number of caches and their size
  • Number of projects
  • Project schema size
  • Number of schedules (with autoprompts)

Possible solutions:

Report Cache Memory

The cache lookup table is responsible for most memory problems related to caching. It matches report requests to report caches and is loaded into memory on each cluster node. Prompt answers tend to consume most memory. To give you an idea of the size of the lookup table, calculate the size of all CachLKUP.idx files. Also, the cache lookup table memory consumption is not governed.

For more detailed information about report caches, see Result Caches.

Possible solutions:

  • Disable report caching
    • Is caching required? If most of your users do ad hoc reporting or if the data warehouse is updated frequently, caching may not be helping the efficiency of your system's operation.
    • Check the cache hit ratio using the Enterprise Manager report "Cache Analysis."
    • Heavy prompt usage decreases cache usage (disable caching of prompted reports).

Working Set

This feature's memory use typically correlates with the number of open user sessions and the size of reports the users run.

Possible solutions:

History List (Inbox) Filled with Messages

Many messages in the History List consume

a lot of memory. When the user logs in to the system, their Inbox is loaded into memory. Every user logged in consumes more memory.

Possible solutions:

A Single Large Report

You may notice that when a certain report is run, memory use spikes. This could be caused by these factors:

  • A large amount of data returned from the data warehouse
  • Large amount of data retrieved for element prompts
  • Multiple page-by fields and subtotals being used in the report
  • Use of Custom groups
  • High Analytical Engine complexity
  • A large amount of XML returned to the MicroStrategy Web product
  • Large reports in a document

Possible solutions:

For details on all the solutions below, see Results Processing (unless otherwise noted).

  • Redefine the report or split the report into multiple smaller reports
  • Restrict object prompt options
    • Do not allow creating a report with object prompts. These prompts allow the user to throw many objects on a report. For example, a report designer might allow the user to select from a list of many metrics and attributes, with no restriction on the number of objects to place on the report. This makes it easy for a user to create such a large report that, when executed, results in a large data set or complex set of multiple metrics that use lots of memory.

      (To limit the number of prompt answers: When creating a prompt using the Prompt Generation Wizard, select the Choose default prompt answers check box, then click Next. You can then set a minimum and maximum number of prompt answers allowed.)

      Another way to restrict prompt options is for the report designers to be more conscious about what they are doing when they give the user a list of prompt options.

  • Restrict element prompts
    • For example, do not allow an element prompt to bring back a list of thousands of elements to the user (see Limiting the Number of Elements Displayed and Cached at a Time). The process of getting all these elements back from the data warehouse can cause a memory depletion, especially if several of these are executing concurrently.
  • Restrict the report's maximum size so users cannot create large reports (see Governing Results Delivery)
    • Reduce the Maximum number of XML cells setting
    • Reduce the Maximum number of rows setting

Export to Excel from MicroStrategy Web or Web Universal

Exporting a report to Excel (especially with formatting), uses a lot of memory because it returns all pages of the report at one time. You may see a type of "heartbeat" pattern in memory use because the XML is returned to Web in chunks. This chunk size = Maximum number of XML cells. For more information on this, see Client-Specific Job Processing

Possible solutions:

  • Have your users export using the "Plain text," "Excel with plain text," or "CSV file format" settings, which use less memory than others
  • Reduce the Maximum number of XML cells setting (see Governing Results Delivery)

Multiple Memory-Intensive Requests on Linux

A memory depletion may be reported on Linux even when the machine has plenty of free memory. This can be a result of the operating system reaching the maximum number of memory mapped blocks for the Intelligence Server process. The default maximum limit is 65536. To increase this limit, use the following command:

Copy
sysctl -w vm.max_map_count=655360