此監視器會在非 SSRS 處理序的記憶體使用量已不允許 SSRS 配置 WorkingSetMinimum 設定所指定的記憶體量時發出警示。此監視器會使用下列公式判斷此狀態:
({WorkingSetMinimum} + {其他項目的記憶體使用量})*100/{記憶體總計} < {臨界值 (\%)}
此監視器會在非 SSRS 處理序的記憶體使用量已不允許 SSRS 配置 WorkingSetMinimum 設定所指定的記憶體量時發出警示。此監視器會使用下列公式判斷此狀態:
({WorkingSetMinimum} + {其他項目所耗用的記憶體})*100/{記憶體總計} < {臨界值 (%)}
Reporting Services 可能會因多種不同的原因而需要大量記憶體。以下列出其中一部分原因:
高負載 - 報表伺服器服務太多的隨選/訂閱要求
要求顯示複雜報表及內含大量資料的報表
同一部伺服器上如有其他應用程式也同樣會耗用大量記憶體,即可能發生記憶體壓力狀況。
您可以考慮為伺服器增加更多的記憶體,或從伺服器移除其他應用程式。
下列文章提供 Reporting Services 的記憶體組態相關資訊 -
在 Reporting Services 中設定伺服器屬性: 設定伺服器屬性
名稱 | 描述 | 預設值 |
已啟用 | 啟用或停用工作流程 | 是 |
產生警示 | 定義工作流程是否會產生警示 | 是 |
間隔 (秒) | 執行工作流程的週期性時間間隔 (秒)。 | 900 |
範例數 | 若違反臨界值的次數大於或等於 [違反數目下限],健全狀況狀態會隨之變更。 | 4 |
同步處理時間 | 使用 24 小時制指定的同步處理時間。將會忽略。 |
|
臨界值 | 此監視器會在非 SSRS 處理序的記憶體使用量與 WorkingSetMinimum 值的總和,佔伺服器記憶體總計的百分比超出臨界值時發出警示。 | 100 |
逾時 (秒) | 指定允許工作流程在關閉且標示為失敗之前執行的時間。 | 300 |
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>
<SampleCount>4</SampleCount>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>