Использование памяти

Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.Instance.MemoryUsage (UnitMonitor)

Монитор создает предупреждение, когда выделение памяти экземпляром SSAS превосходит значение параметра WarningThreshold, выраженного в процентном соотношении параметра TotalMemoryLimit для экземпляра SSAS. Монитор создает критическое предупреждение, когда выделение памяти превосходит значение критического порогового значения.

Knowledge Base article:

Сводка

Монитор создает предупреждение, когда выделение памяти экземпляром SSAS превосходит значение параметра WarningThreshold, выраженного в процентном соотношении параметра TotalMemoryLimit для экземпляра SSAS. Монитор создает критическое предупреждение, когда выделение памяти превосходит значение критического порогового значения.

Причины

При некоторых обстоятельствах SSAS может приближаться к или превышать значение параметра TotalMemoryLimit. В некоторых случаях, отдельная операция потребует памяти за пределами этого предела, и, несмотря на все усилия сервера, чтобы очистить память от других, менее критичных задач, распределения могут иногда превышать настроенные ограничения, либо операции должны быть принудительно завершены с ошибкой.

Это может произойти при обработке больших объемов или данных фактов, особенно, если существуют атрибуты с типами данных, занимающие большие объемы (например, длинные строки, двоичные данные и т. д.), или если измерение содержит многочисленные члены. Кроме того, выполняемые на сервере запросы могут охватывать очень большие объемы данных, особенно в случае перекрестного объединения нескольких измерений, или требовать значительных расчетов для получения результатов для клеток не агрегированных ранее по решению администратора, или которые просто невозможно агрегировать заранее.

Решения

Когда пределы памяти для сервера превышены, существует множество подходов, которые могут использовать администраторы для устранения этой проблемы. После рассмотрения основной деятельности, которая вызывает использование памяти, требований к нагрузке на сервер, имеющихся ресурсов и других факторов, а также подробного рассмотрения и принятия во внимание Руководства по настройке производительности многомерных служб SSAS, либо консультаций со службой технической поддержки Майкрософт, при необходимости, могут быть предпринятые любые из перечисленных ниже подходы для решения проблемы:

Внешнее

Конфигурация памяти и критерии размеров в SQL Server 2014

Документация TechNet по свойствам памяти служб Analysis Services

Настройка свойств сервера для служб Analysis Services

Документация TechNet по счетчикам производительности SSAS

Руководство по настройке производительности многомерных служб SSAS

Переопределяемые параметры

Название

Описание

Значение по умолчанию

Критическое пороговое значение (в %)

Состояние работоспособности изменяется на "критическое", если использование памяти (в %) службами Analysis Services превышает пороговое значение.

95

Включено

Включает или отключает поток процесса

Истина

Создает предупреждения

Определяет, создает ли рабочий процесс предупреждения

Истина

Интервал (в секундах)

Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс.

900

Время синхронизации

Время синхронизации указывается в 24-часовом формате и может быть опущено.

4

Пороговое значение предупреждения (в %)

Состояние работоспособности изменяется на "предупреждение", если использование памяти (в %) службами Analysis Services превышает пороговое значение, но все еще меньше критического порогового значения (в %).

 

Element properties:

TargetMicrosoft.SQLServer.2014.AnalysisServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.AnalysisServices.MonitorType.Instance.MemoryUsagePercent
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2014: высокий уровень использования памяти
Текущее использование памяти для SSAS ({3} ГБ) превосходит сконфигурированное пороговое значение, выраженное в процентном соотношении параметра TotalMemoryLimit для экземпляра.
Общий объем памяти сервера: {2} ГБ
Общее использование памяти: {5} ГБ
Память, занятая процессами, не относящимся к SSAS: {4} ГБ
Память, занятая SSAS: {3} ГБ
Нижний предел памяти SSAS: {6} ГБ ({7}\%)
Верхний предел памяти SSAS: {0} ГБ ({8}\%)
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.Instance.MemoryUsage" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.AnalysisServices.MonitorType.Instance.MemoryUsagePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.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/>
</Configuration>
</UnitMonitor>