Монитор создает предупреждение, когда доступное дисковое пространство для папки хранилища табличной базы данных SSAS опускается ниже порогового значения предупреждения, выраженного в процентах от суммы прогнозируемого размера папки хранилища базы данных и свободного дискового пространства. Монитор создает критическое предупреждение, если доступное пространство опускается ниже критического порогового значения.
Папка табличной базы данных SSAS может вырастать с течением времени по мере добавления новых данных из источников данных. Поэтому администраторам нужно следить, чтобы в расположении папки базы данных всегда было достаточное количество свободного пространства.
Когда доступного места на диске, где размещается хранилище базы данных, становится слишком мало, могут возникать сбои, которые могут привести к задержке пользовательских запросов или повлиять на другие приложения, которым выделено то же дисковое пространство. Это снижает производительность сервера. Поэтому во избежание временных и материальных затрат, связанных со сбоями, которые могут повлечь за собой простои или задержки, важно контролировать и гарантировать наличие достаточного свободного пространства. Это особенно актуально для баз данных, размер которых быстро увеличивается с течением времени.
Решение проблемы нехватки дискового пространства зависит от первопричин, которые нужно исследовать в каждом конкретном случае. Ситуацию можно улучшить с помощью следующих подходов:
Удалить данные, занимающие дисковое пространство на том же диске, где расположена папка хранилища базы данных.
Удалите "старые" разделы из таблицы.
Для переноса всей базы данных можно отключить ее от табличного экземпляра, переместить и снова подключить в новом расположении.
Процедуры резервного копирования и восстановления помогут перенести данные с одного сервера на другой и соблюсти требования к дисковому пространству.
Увеличьте размер логического диска, на котором расположена папка данных, с помощью диспетчера дисков.
Переместите папку табличных данных на диск с большим объемом доступного дискового пространства.
Измените пороговые значения соответствующим образом, чтобы удовлетворить ожидаемый объем нагрузки и условия в среде.
Полностью отключите монитор, если состояние дискового пространства не имеет значения для экземпляра.
Настройка свойств сервера для служб Analysis Services
Документация TechNet по счетчикам производительности SSAS
Руководство по настройке производительности многомерных служб SSAS
Название | Описание | Значение по умолчанию |
Критическое пороговое значение (в %) | Состояние работоспособности изменяется на "Критическое", если значение счетчика производительности свободного места (в %) становится ниже порогового значения. | 5 |
Включено | Включает или отключает поток процесса | Да |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 900 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Время ожидания (в секундах) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Пороговое значение предупреждения (%) | Состояние работоспособности изменяется на "Предупреждение", если значение счетчика производительности "Свободное место в базе данных (%)" опускается ниже порогового значения, но все еще превышает критическое пороговое значение (в %). | 10 |
Target | Microsoft.SQLServer.2016.AnalysisServices.TabularDatabase | ||
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.TabularDatabase.FreeSpace" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.TabularDatabase" 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.TabularDatabase.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>