Объем памяти, занятый прочими компонентами

Microsoft.SQLServer.2014.ReportingServices.UnitMonitor.Instance.MemoryUsageOnServer (UnitMonitor)

Монитор создает предупреждение, если объем памяти, занятый процессами, отличными от SSRS, не позволяет SSRS распределить объем памяти, предписанный параметром WorkingSetMinimum. Монитор использует следующую формулу для определения состояния:
({Параметр WorkingSetMinimum} + {Память, занятая другими компонентами})*100/{Общая память} < {Пороговое значение (\%)}

Knowledge Base article:

Сводка

Монитор создает предупреждение, если память, занятая процессами, отличными от SSRS, не позволяет распределить объем памяти, указанный в параметре WorkingSetMinimum. Монитор использует следующую формулу для определения состояния:

({Параметр WorkingSetMinimum} + {Память, занятая другими процессами})*100/{Общий объем памяти} < {Пороговое значение (в %)}

Причины

Службам Reporting Services может понадобиться большой объем памяти по ряду причин, вот некоторые из них:

Условия нехватки памяти могут возникнуть, если на том же сервере выполняются приложения, потребляющие большие объемы памяти.

Решения

Можно добавить дополнительную память на сервер, либо удалить другие приложения.

В следующей статье рассмотрена конфигурация памяти для служб отчетов: http://technet.microsoft.com/en-us/library/ms159206.aspx

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

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

Название

Описание

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

Включено

 

1

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

 

Да

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

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

900

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

 

 

Порог

Монитор создает предупреждение, если сумма объемов памяти, занятой процессами, отличными от SSRS и значения параметра WorkingSetMinimum, выраженного в процентном отношении общей памяти сервера, превышает пороговое значение.

100

Element properties:

TargetMicrosoft.SQLServer.2014.ReportingServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.ReportingServices.MonitorType.Instance.MemoryUsageOnServer
RemotableTrue
AccessibilityPublic
Alert Message
SSRS 2014: другие процессы используют слишком много памяти
Другие процессы могут влиять на производительность SSRS.
Общий объем памяти сервера: {0} ГБ
Параметр SSRS WorkingSetMinimum: {1} ГБ
Параметр SSRS WorkingSetMaximium: {2} ГБ
Память, занятая SSRS: {3} ГБ ({4}\%)
Память, занятая другими процессами: {5} ГБ ({6}\%)
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.ReportingServices.UnitMonitor.Instance.MemoryUsageOnServer" Accessibility="Public" Enabled="true" Target="SQLRS!Microsoft.SQLServer.2014.ReportingServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.ReportingServices.MonitorType.Instance.MemoryUsageOnServer" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.ReportingServices.UnitMonitor.Instance.MemoryUsageOnServer.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='TotalPhysicalMemoryGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='WorkingSetMinimumGB']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='WorkingSetMaximumGB']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='MemoryUsageGB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='MemoryUsagePercent']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='MemoryUsageByOtherProcessGB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='MemoryUsageByOtherProcessPercent']$</AlertParameter7>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>100</Threshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>