Монитор создает предупреждение, если объем памяти, занятый процессами, отличными от SSRS, не позволяет SSRS распределить объем памяти, предписанный параметром WorkingSetMinimum. Монитор использует следующую формулу для определения состояния:
({Параметр WorkingSetMinimum} + {Память, занятая другими компонентами})*100/{Общая память} < {Пороговое значение (\%)}
Монитор создает предупреждение, если память, занятая процессами, отличными от SSRS, не позволяет распределить объем памяти, указанный в параметре WorkingSetMinimum. Монитор использует следующую формулу для определения состояния:
({Параметр WorkingSetMinimum} + {Память, занятая другими процессами})*100/{Общий объем памяти} < {Пороговое значение (в %)}
Службам Reporting Services может понадобиться большой объем памяти по ряду причин, вот некоторые из них:
Высокая нагрузка – Слишком много запросов по требованию/подписок обрабатывается сервером отчетов;
Сложные отчеты, а также отчеты, которые отображают большие объемы данных при запросе
Условия нехватки памяти могут возникнуть, если на том же сервере выполняются приложения, потребляющие большие объемы памяти.
Можно добавить дополнительную память на сервер, либо удалить другие приложения.
В следующей статье рассмотрена конфигурация памяти для служб отчетов: http://technet.microsoft.com/en-us/library/ms159206.aspx
Настройка свойств сервера для служб Reporting Services: Настройка свойств сервера
Название | Описание | Значение по умолчанию |
Включено |
| 1 |
Создает предупреждения |
| Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 900 |
Время синхронизации |
|
|
Порог | Монитор создает предупреждение, если сумма объемов памяти, занятой процессами, отличными от SSRS и значения параметра WorkingSetMinimum, выраженного в процентном отношении общей памяти сервера, превышает пороговое значение. | 100 |
Target | Microsoft.SQLServer.2014.ReportingServices.Instance | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2014.ReportingServices.MonitorType.Instance.MemoryUsageOnServer | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>