SQL Analysis Memory Test
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 SQL Analysis Memory test!
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.
Target of the test : A Microsoft SQL Analysis Services Server
Agent deploying the test : An internal agent
Outputs of the test : One set of results for the SSAS server being monitored
Parameters | Description |
---|---|
Test Period |
How often should the test be executed. |
Host |
The host for which the test is to be configured. |
Port |
The port at which the specified Host listens. |
Instance |
The name of a specific SQL Analysis Services Server instance to be monitored. The default value of this parameter is “default”. However, if the Microsoft SQL Server hosting SSAS uses named instances, then do the following:
|
SSAS Version |
Specify the SSAS version being monitored. By default, 11 is displayed here, indicating that version 11 of SSAS is monitored by default. |
Measurement |
Description |
Unit |
Interpretation |
---|---|---|---|
Memory limit hard |
Indicates the hard memory limit. |
MB |
HardMemoryLimit 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 TotalMemoryLimit 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 HardMemoryLimit, LowMemoryLimit, and/or the TotalMemoryLimit memory settings to fulfill the memory demands. |
Memory reservation |
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. |
Current quota request blocked |
Indicates the current number of quota requests that are blocked until other memory quotas are freed.. |
Number |
|
Background 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. |
Background cleaner memory non-shrinkable |
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. |
Background cleaner memory shrinkable |
Indicates the amount of background cleaner memory that is shrinkable. |
MB |
Shrinkable memory can easily be reduced and returned back to the operating system. |
Memory allocated to filestore |
Indicates the current memory allocated to filestore (file cache). |
MB |
|
Filestore data read rate |
Indicates the rate at which data was read from filestore. |
MB/Sec |
|
Filestore data write rate |
Indicates the rate at which data was written into filestore. |
MB/Sec |
|
Filestore page read rate |
Indicates the rate of page reads from filestore. |
Reads/Sec |
|
Filestore page write rate |
Indicates the rate of page writes to filestore. |
Writes/Sec |
|
Filestore page fault rate |
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. |
Memory allocated to aggregation cache |
Indicates the current memory allocated to aggregation cache. |
MB |
|
In-memory aggregation map file |
Indicates the current size of in-memory aggregation map file. |
MB |
|
In-Memory dimension property file |
Indicates the current size of in-memory dimension property file. |
MB |
|
In-Memory dimension string file |
Indicates the current size of in-memory dimension string file. |
MB |
|
In-Memory map file |
Indicates the current size of the in-memory map file. |
MB |
|
Page pool 64 allocation |
Indicates the amount of memory borrowed from system. |
MB |
|
Page pool 64 lookaside |
Indicates the current memory in 64KB lookaside list. |
MB |
|
Page pool 1 allocation |
Indicates the memory borrowed from 64KB page pool. |
MB |
|
Page pool 1 lookaside |
Indicates the current memory in 8KB lookaside list. |
MB |
|
Page pool 8 allocation |
Indicates the memory borrowed from 64KB page pool. |
MB |
|
Page pool 8 lookaside |
Indicates the current memory in 8KB lookaside list. |
MB |
|