Монитор создает предупреждение, если параметр "Общий предел памяти" для экземпляра SSAS превышает сконфигурированное значение. При этом риску распределения подвергается физическая память, необходимая операционной системе для выполнения базовых функций (не менее 2 ГБ).
Монитор создает предупреждение, если значение параметра "Общий предел памяти" для экземпляра SSAS превышает заданное пороговое значение, что может привести к недостатку физической памяти, необходимой для выполнения базовых функций операционной системы. Кроме того, конфигурация не учитывает потенциальное использование памяти другими процессами, не связанными с отслеживаемым экземпляром. Это использование также следует учитывать при настройке параметра "Общий предел памяти" после тщательного изучения Руководства по настройке производительности многомерных служб SSAS.
Значение параметра "Общий предел памяти" должно быть таким, чтобы операционная система получила достаточный объем памяти для выполнения основных необходимых функций управления памятью, а также для взаимодействия с драйверами и устройствами. Если ОС не хватает доступной памяти для этих основных функций, это может привести к нестабильности или сбою системы. Таким образом, значение должно быть несколько ниже 100 %, чтобы гарантировать достаточный объем физической памяти для выполнения этих функций. Если установлено слишком большое значение, монитор будет создавать предупреждения, информируя пользователя об этом состоянии.
По умолчанию значение параметра "Общий предел памяти" для SSAS равно 80, что составляет 80 % от физической памяти, доступной на сервере. Если имеются другие крупные потребители памяти (например, ядро реляционной СУБД SQL Server), следует принимать их во внимание и соответственно уменьшать значения параметров, отвечающих за ограничения памяти. Если задано слишком высокое значение параметра, ОС может столкнуться с нехваткой физической памяти, что может привести к чрезмерному использованию диска для файла подкачки и к снижению производительности сервера.
Если требуется определенное количество байтов, любое значение больше чем 100 интерпретируется как число байтов в физической памяти.
Примечание. В отличие от ядра реляционной СУБД SQL Server, которое поддерживает жесткое максимальное ограничение памяти, параметр ядра SSAS "Общий предел памяти" работает несколько иначе. Он задает предельное значение объема памяти, при котором сервер начнет агрессивно пытаться очистить память как можно быстрее. Аналогично параметр "Нижняя граница объема памяти" задает предельное значение, при котором сервер начнет пытаться очистить память из кэша SSAS "лениво", пытаясь снизить влияние любых уже существующих сеансов или выполняющихся запросов. При достижении Общего ограничения памяти может пострадать производительность сервера, так как сервер будет очень агрессивно очищать память из кэша. Сервер также поддерживает параметр "Твердый лимит памяти". Это объем памяти, по достижению которого сервер начнет произвольно прекращать сеансы, чтобы попытаться освободить память. Это может привести к сбоям для некоторых пользователей, и именно поэтому параметр "Общий предел памяти" не применяется в качестве жесткого предела, так как некоторые запросы или задания могут по своей природе использовать большие объемы памяти, и модуль OLAP будет делать все возможное, чтобы обслужить их в рамках ограничений, на которые он настроен.
Это состояние можно исправить одним из следующих действий:
Уменьшите параметр "Общий предел памяти" ниже сконфигурированного порогового значения.
Добавьте физическую память на сервер, чтобы уменьшить значение параметра "Общий предел памяти", выраженного в процентах от общего объема доступной физической памяти. Значение общего объема доступной физической памяти ниже порогового значения и выражено в ГБ.
Уменьшите настроенное пороговое значение, чтобы избежать предупреждения.
Полностью отключите монитор, если использование памяти не имеет значения для сервера.
Рекомендации по настройке и выбору размера памяти в SQL Server 2008
Документация TechNet по свойствам памяти служб Analysis Services
Настройка свойств сервера в службах Analysis Services
Руководство по настройке производительности многомерных служб SSAS
Название | Описание | Значение по умолчанию |
Включено | Включает или отключает поток процесса | Да |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 604800 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Пороговое значение предупреждения (в ГБ) | Монитор создает предупреждение, если параметр "Общий предел памяти" для экземпляра SSAS превышает сконфигурированное значение. При этом риску распределения подвергается физическая память, необходимая операционной системе для выполнения базовых функций (не менее 2 ГБ). | 2 |
Время ожидания (секунды) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 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.TotalMemoryConfiguration | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.TotalMemoryConfiguration" 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.TotalMemoryConfiguration" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.TotalMemoryConfiguration.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="NotConfigured" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Configured" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>2</Threshold>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>