Конфликт конфигурации памяти с SQL Server

Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer (UnitMonitor)

Монитор создает предупреждение, если на сервере запущен процесс ядра реляционной СУБД SQL Server и параметр "Общий предел памяти" для экземпляра SSAS превышает указанное пороговое значение. Это необходимо для того, чтобы у процесса SQL Server был достаточный объем памяти.

Knowledge Base article:

Сводка

Параметр "Общий предел памяти" конфигурации SQL Server Analysis Services должен быть настроен так, чтобы обеспечить распределение памяти для других процессов на компьютере.

Причины

В частности, основным примером процесса, который использует ресурсы памяти на компьютере с SSAS, является ядро реляционной СУБД SQL Server. Это может привести к соревнованию за физическую память со стороны интенсивных потребителей одного и того же ограниченного ресурса. Поэтому обе службы баз данных нужно настроить таким образом, чтобы каждая из них получила достаточный объем памяти для работы. Если параметр "Общий предел памяти" SSAS имеет слишком большое значение, то SSAS может использовать чрезмерный объем памяти, что приведет к исчерпанию физической памяти из-за соревнования с ядром реляционной СУБД (или другими процессами с высоким потреблением памяти). Параметр "Общий предел памяти" должен иметь достаточно низкое значение, чтобы процесс SQL Server мог использовать заданный объем памяти и при этом оставался запас оперативной памяти для работы операционной системы и для других обычных процессов, запущенных на компьютере.

Решения

При возникновении конфликтов конфигурации памяти администратор должен изменить конфигурацию всех соответствующих процессов с учетом ресурсов и потребностей пользователей и других процессов. На сервере баз данных Майкрософт такие проблемы чаще всего вызваны экземплярами SSAS и реляционной СУБД SQL Server. К счастью, конфигурацию обеих служб можно корректировать по мере необходимости. Универсального значения параметра "Общий предел памяти" для SSAS и для реляционной СУБД SQL нет, поэтому администратор может корректировать его для каждой конкретной среды. При возникновении конфликтов конфигурации ситуацию можно улучшить с помощью следующих подходов:

Внешнее

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

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

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

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

Название

Описание

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

Включено

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

Да

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

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

Да

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

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

604800

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

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

 

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

Состояние работоспособности изменяется, если на сервере запущен процесс ядра реляционной СУБД SQL Server и значение параметра "Общий предел памяти" для экземпляра SSAS превышает пороговое значение.

40

Время ожидания (секунды)

Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный.

300

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.Instance
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: конфликт конфигурации памяти с SQL Server
Параметр конфигурации "Общий предел памяти" для экземпляра SQL Server Analysis Services ({0} ГБ) оставляет {1} ГБ из {2} ГБ для операционной системы и SQL Server, что ниже настроенного порогового значения для формирования предупреждения.
Общий объем памяти сервера: {2} ГБ
Общее использование памяти: {5} ГБ
Память, используемая процессами, не относящимися к SSAS: {4} ГБ
Память, используемая SSAS: {3} ГБ
Нижний предел памяти SSAS: {6} ГБ ({7} \%)
Верхний предел памяти SSAS: {0} ГБ ({8} \%)
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</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="Warning" MonitorTypeStateID="ConfigurationConflict" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="NoConfigurationConflict" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>40</Threshold>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>