Монитор создает предупреждение, если на сервере запущен процесс ядра реляционной СУБД SQL Server и параметр "Общий предел памяти" для экземпляра SSAS превышает указанное пороговое значение. Это необходимо для того, чтобы у процесса SQL Server был достаточный объем памяти.
Параметр "Общий предел памяти" конфигурации SQL Server Analysis Services должен быть настроен так, чтобы обеспечить распределение памяти для других процессов на компьютере.
В частности, основным примером процесса, который использует ресурсы памяти на компьютере с SSAS, является ядро реляционной СУБД SQL Server. Это может привести к соревнованию за физическую память со стороны интенсивных потребителей одного и того же ограниченного ресурса. Поэтому обе службы баз данных нужно настроить таким образом, чтобы каждая из них получила достаточный объем памяти для работы. Если параметр "Общий предел памяти" SSAS имеет слишком большое значение, то SSAS может использовать чрезмерный объем памяти, что приведет к исчерпанию физической памяти из-за соревнования с ядром реляционной СУБД (или другими процессами с высоким потреблением памяти). Параметр "Общий предел памяти" должен иметь достаточно низкое значение, чтобы процесс SQL Server мог использовать заданный объем памяти и при этом оставался запас оперативной памяти для работы операционной системы и для других обычных процессов, запущенных на компьютере.
При возникновении конфликтов конфигурации памяти администратор должен изменить конфигурацию всех соответствующих процессов с учетом ресурсов и потребностей пользователей и других процессов. На сервере баз данных Майкрософт такие проблемы чаще всего вызваны экземплярами SSAS и реляционной СУБД SQL Server. К счастью, конфигурацию обеих служб можно корректировать по мере необходимости. Универсального значения параметра "Общий предел памяти" для SSAS и для реляционной СУБД SQL нет, поэтому администратор может корректировать его для каждой конкретной среды. При возникновении конфликтов конфигурации ситуацию можно улучшить с помощью следующих подходов:
Настроить параметр "Макс. лимит памяти" для экземпляра(ов) SQL Server, чтобы уменьшить потребление этим процессом(-ами).
Уменьшите параметр конфигурации "Общий предел памяти" для экземпляров SSAS, чтобы сократить использование памяти этими процессами.
Увеличить объем доступной памяти на сервере.
Настроить пороговое значение для предупреждения.
Отключите предупреждение для тех случаев, в которых администратор считает его ненужным.
Документация TechNet по свойствам памяти служб Analysis Services
Настройка свойств сервера в службах Analysis Services
Руководство по настройке производительности многомерных служб SSAS
Название | Описание | Значение по умолчанию |
Включено | Включает или отключает поток процесса | Да |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 604800 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Пороговое значение предупреждения (в %) | Состояние работоспособности изменяется, если на сервере запущен процесс ядра реляционной СУБД SQL Server и значение параметра "Общий предел памяти" для экземпляра SSAS превышает пороговое значение. | 40 |
Время ожидания (секунды) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Target | Microsoft.SQLServer.2008.AnalysisServices.Instance | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | ConfigurationHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>