The monitor reports a warning, when the available disk space for SSAS multidimensional database storage folder drops below Warning Threshold setting, expressed as percentage of the sum of the estimated database storage folder size plus disk free space. The monitor reports a critical alert, when the available space drops below Critical Threshold. The monitor does not take into account partitions located in folders other than the DB storage folder.
SSAS multidimensional database folder typically grows over time, while the data is being continuously added from data warehouse sources for the most typical applications of the server. Therefore, the administrators would like to monitor the issue to be sure that there is always sufficient space left in the storage location for the database folder. Note that the administrators would also wish to monitor the available space in partition folders, which can be configured outside the database folder directory structure. Those folders are not monitored by this rule, but rather by SSAS Partition Storage Available Space Monitor.
When the available disk space on the drive, where the database storage location is configured, becomes too low, some failures may occur, jeopardizing successful data processing, delaying user’s queries, or affecting other applications as well, which share the same allocation of disk space. This appears to be unhealthy for the server. Consequently, it is important to monitor the issue, and ensure that a sufficient margin of available space remains to avoid costly and time-consuming processing failures, which may incur production outages or delays. It is especially actual for dimensions or measure groups that tend to grow quickly over time.
The resolution(s) for low available disk space depend upon the root causes, which must be investigated in each case, when this issue occurs. The condition may be alleviated by any of the following potential approaches:
Modify dimension design to remove unnecessary attributes, or limit the scope of the members included from underlying data source to reduce the dimension size.
Move measure group partitions to another drive with more available space. Note that this action can switch the partitions to unprocessed state, and will subsequently require reprocessing of the partitions before they will be able to serve the data.
Remove data consuming disk space on the same drive with the DB storage folder.
Increase the size of the logical drive on which the data folder is stored by means of Disk Manager.
Copy the DB data folder in its entirety to a new drive with more available space.
Modify the thresholds accordingly to suit the expected workload and conditions in the environment.
Disable the monitor entirely, if disk space is not a concern for the instance.
Configure Server Properties in Analysis Services
TechNet documentation for SSAS Performance Counters
SSAS Multidimensional Performance Guide
Name | Description | Default Value |
Critical Threshold (%) | Health State changes to Critical, when Database Free Space (%) performance counter drops below the threshold. | 5 |
Enabled | Enables or disables the workflow | Yes |
Generates Alerts | Defines whether the workflow generates an Alert | Yes |
Interval Seconds | The recurring interval of time in seconds in which to run the workflow. | 900 |
Synchronization Time | The synchronization time specified by using a 24-hour format. May be omitted. |
|
Timeout (seconds) | Specifies the time the workflow is allowed to run before being closed and marked as failed. | 300 |
Warning Threshold (%) | Health State changes to Warning, if Database Free Space (%) performance counter drops below the threshold, but is still higher than Critical Threshold (%). | 10 |
Target | Microsoft.SQLServer.2016.AnalysisServices.MultidimensionalDatabase | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.AnalysisServices.MonitorType.Database.FreeSpacePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.MultidimensionalDatabase.FreeSpace" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.MultidimensionalDatabase" TypeID="Microsoft.SQLServer.2016.AnalysisServices.MonitorType.Database.FreeSpacePercent" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.MultidimensionalDatabase.DatabaseFreeSpace.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='UsedOnDatabaseDriveGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='TotalOnDatabaseDriveGB']$</AlertParameter2>
<AlertParameter3>$Target/Property[Type='SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Database']/StorageLocation$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='DatabaseDefaultForlderSizeGB']$</AlertParameter4>
<AlertParameter5>$Target/Property[Type='SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Database']/MountPoint$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='DatabaseFreeSpacePercent']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='DatabaseFreeSpaceGB']$</AlertParameter7>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Above" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Between" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="Below" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance']/ServiceName$</ServiceName>
<DatabaseName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Database"]/DatabaseName$</DatabaseName>
<ConnectionString>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance']/ConnectionString$</ConnectionString>
<DataDir>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance']/DataDir$</DataDir>
<CriticalThreshold>5</CriticalThreshold>
<WarningThreshold>10</WarningThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>