eG Monitoring
 

Measures reported by MSSQLAMemoryTest

SQL Server Analysis Service is a memory intensive service. Even if SSAS is idle, it will consume around 40-50 MB of memory. It pre-allocates a modest amount of memory at startup so requests can be handled immediately. Additional memory is allocated as query and processing workloads increase. Administrators typically specify configuration settings to control the thresholds at which memory is released/allocated. If these threshold are not prudently set, then SSAS may not have sufficient memory to process its workload, which in turn can cause serious processing slowdowns. To promptly detect and avert such memory contentions and consequent processing bottlenecks, administrators should continuously monitor the memory usage of SSAS vis-a-vis the configured memory settings. This is where the MSSQLAMemoryTest helps!

This test enables administrators to track the memory usage of SSAS alongside its memory configuration. This way, administrators can rapidly ascertain if SSAS is memory-hungry, and if so, alter the memory limits, so that SSAS has more memory at its disposal for processing requests.

Outputs of the test : One set of results for the SSAS server being monitored.

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Memory_limit_hard Indicates the hard memory limit. MB Hard Memory Limit defines a level at which the SSAS instance starts to reject requests completely due to memory usage. The default value for this setting is 0, which automatically places the threshold midway between the Total Memory Limit value and either the physical memory or virtual address space, whichever is smaller.
Memory_limit_high Indicates the high memory limit setting. MB This is an upper threshold at which the SSAS instance begins releasing memory more aggressively to make room for currently executing requests and new high-priority requests. This limit applies to both multidimensional and tabular instances. The default value is 80 percent of either physical memory or virtual address space, whatever the smaller.
Memory_limit_low Indicates the low memory limit setting. MB This is the lowest limit at which the SSAS instance will begin to release memory allocated to infrequently used objects.
Memory_usage Indicates the memory usage of the server process as used in calculating cleaner memory price. MB If the value of this measure increases consistently, it implies that the SSAS instance is memory-hungry. You may want to fine-tune the Hard Memory Limit, Low Memory Limit, and/or the Total Memory Limit memory settings to fulfill the memory demands.
Quota Indicates the current memory reservation or quota. MB Memory reservation improves query reliability under server load, because a query with reserved memory is less likely to hit out-of-memory while running, and the server prevents one query from dominating entire server memory.
Quota_blocked Indicates the current number of quota requests that are blocked until other memory quotas are freed. Number  
Cleaner_memory Indicates the amount of memory, in KB, known to the background cleaner. MB SSAS has a special memory “cleaner” background thread that constantly determines if it needs to clean up memory. The cleaner looks at the amount of memory used.

The value of this measure is the sum of the values of the Background cleaner memory non-shrinkable and Background cleaner memory shrinkable measures. If the value of this measure exceeds the value of the Memory limit low measure, the cleaner process starts to look for objects in-memory that it can eject. On the other hand, if the value of this measure exceeds the Memory limit high measure, the cleaner process gets much more aggressive. Likewise, if the value of this measure exceeds the value of the Memory limit hard measure, processes might be killed and you might receive out of memory errors.
Clean_mem_nonshrink Indicates the amount of background cleaner memory that is non-shrinkable. MB Non-shrinkable memory is not easily reduced as it is generally used for more essential system-related activities such as memory allocators and metadata objects.
Clean_mem_shrink Indicates the amount of background cleaner memory that is shrinkable. MB Shrinkable memory can easily be reduced and returned back to the operating system.
Filestore Indicates the current memory allocated to filestore (file cache). MB  
FilestoreKB_reads Indicates the rate at which data was read from filestore. MB/Sec  
FilestoresKB_writes Indicates the rate at which data was written into filestore. MB/Sec  
Filestore_reads Indicates the rate of page reads from filestore. Reads/Sec  
Filestore_writes Indicates the rate of page writes to filestore. Writes/Sec  
Filestore_pagefault Indicates the Filestore page fault rate. Faults/Sec Ideally, the value of this measure should be low. If the value exceeds 50 per paging disk, it is a cause for concern. In such a situation, you may want to see the configuration of the page file on the server.
Agg_cacheKB Indicates the current memory allocated to aggregation cache. MB  
InMem_agg_mapfile Indicates the current size of in-memory aggregation map file. MB  
InMem_Dimen_prop_file Indicates the current size of in-memory dimension property file. MB  
InMem_Dimen_str_file Indicates the current size of in-memory dimension string file. MB  
InMem_map_file Indicates the current size of the in-memory map file. MB  
Pagepool_64_alloc Indicates the amount of memory borrowed from system. MB  
Pagepool_64_lookaside Indicates the current memory in 64KB lookaside list. MB  
Pagepool_1_alloc Indicates the memory borrowed from 64KB page pool. MB  
Pagepool_1_lookaside Indicates the current memory in 8KB lookaside list. MB  
Pagepool_8_alloc Indicates the memory borrowed from 64KB page pool. MB  
Pagepool_8_lookaside Indicates the current memory in 8KB lookaside list. MB