Монитор создает предупреждение, когда выделение памяти экземпляром SSAS превосходит пороговое значение предупреждения, выраженное в процентном соотношении от параметра "Общий предел памяти" для экземпляра SSAS. Монитор создает критическое предупреждение, когда выделение памяти превосходит заданное критическое пороговое значение.
Монитор создает предупреждение, когда выделение памяти экземпляром SSAS превосходит пороговое значение предупреждения, выраженное в процентном соотношении от параметра "Общий предел памяти" для экземпляра SSAS. Монитор создает критическое предупреждение, когда выделение памяти превосходит заданное критическое пороговое значение.
В некоторых обстоятельствах использование памяти SSAS может приближаться к значению, указанному в параметре "Общий предел памяти", или превышать его. В некоторых случаях объем памяти, необходимый для выполнения всего одной операции, может превышать это значение, и, несмотря на все усилия сервера по очистке памяти от других менее критичных задач, объем выделяемой памяти иногда вынужденно превышает заданные ограничения. В противном случае операции необходимо принудительно завершать.
Это может произойти при обработке больших измерений или данных фактов, особенно если существуют атрибуты с типами данных большого объема (например, длинные строки, двоичные данные и т. д.) или если в измерении содержится большое число членов. Кроме того, выполняемые на сервере запросы могут охватывать очень большие объемы данных, особенно в случае перекрестного объединения нескольких измерений, или требовать значительных расчетов для получения результатов для ячеек, которые не были или не могли быть агрегированы заранее.
При превышении ограничений памяти для сервера администраторы могут решить проблему несколькими способами. После изучения основной активности, которая вызывает использование памяти, требований к рабочей нагрузке для сервера, имеющихся ресурсов и других факторов, а также подробного изучения Руководства по настройке производительности многомерных служб SSAS или консультаций со службой технической поддержки Майкрософт администраторы могут использовать любой из перечисленных ниже подходов для решения проблемы:
Определите сеанс(ы), ответственные за наиболее значимые распределения памяти, и вручную их отмените.
Определите сеансы, ответственные за наиболее значимые распределения памяти, и проанализируйте их индивидуально, перепланировав обработку заданий или отчетов, выполняя предварительное выделение из кэша запросов во время низкой загрузки или заранее создав определенные агрегаты, формируемые во время обработки с целью последующего снижения потребления памяти для пользовательских запросов.
Увеличите объем физической памяти на компьютере.
Сократите использование памяти другими процессами на компьютере, например экземплярами ядра реляционной СУБД SQL Server или другими экземплярами SSAS.
Увеличьте значение параметра "Общий предел памяти" или настроенные пороговые значения для предупреждения, чтобы избежать этого состояния.
Полностью отключите монитор, если использование памяти не имеет значения для сервера.
Конфигурация памяти и критерии размеров в SQL Server 2016
Документация TechNet по свойствам памяти служб Analysis Services
Настройка свойств сервера для служб Analysis Services
Документация TechNet по счетчикам производительности SSAS
Руководство по настройке производительности многомерных служб SSAS
Название | Описание | Значение по умолчанию |
Критическое пороговое значение (в %) | Состояние работоспособности изменяется на "Критическое", если использование памяти (в %) службами Analysis Services превышает пороговое значение. | 95 |
Включено | Включает или отключает поток процесса | Да |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 900 |
Число выборок | Состояние работоспособности изменяется, если количество нарушений порогового значения больше или равно минимальному количеству нарушений. | 4 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Время ожидания (секунды) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Пороговое значение предупреждения (%) | Состояние работоспособности изменяется на "Предупреждение", если использование памяти службами Analysis Services (в %) превышает пороговое значение, но все еще меньше критического порогового значения (в %). | 80 |
Target | Microsoft.SQLServer.2016.AnalysisServices.Instance | ||
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.Instance.MemoryUsagePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.Instance.MemoryUsage" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.AnalysisServices.MonitorType.Instance.MemoryUsagePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.Instance.MemoryUsage.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='MemoryLimitHighGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='MemoryLeavesForOsGB']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='TotalPhysicalMemoryGB']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='MemoryUsageGB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='MemoryUsageByOtherProcessGB']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='UsedPhysicalMemoryGB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='MemoryLimitLowGB']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='MemoryLimitLowPercent']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='MemoryLimitHighPercent']$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Critical" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<CriticalThreshold>95</CriticalThreshold>
<WarningThreshold>80</WarningThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>