SSRS 以外のプロセスが消費するメモリが原因で、SSRS が WorkingSetMinimum 設定で規定されている量のメモリを割り当てることができない場合、モニターは警告を出します。モニターは次の式を使用して状態を判別します。
({WorkingSetMinimum} + {他のものによって消費されるメモリ})*100/{合計メモリ} < {しきい値 (\%)}
SSRS 以外のプロセスが消費するメモリが原因で、SSRS が WorkingSetMinimum 設定で規定されている量のメモリを割り当てることができない場合、モニターは警告を出します。モニターは次の式を使用して状態を判別します。
({WorkingSetMinimum} + {他のものによって消費されるメモリ})*100/{合計メモリ} < {しきい値 (%)}
Reporting Services はさまざまな理由で大量のメモリを必要とすることがあります。以下に理由をいくつか挙げます。
高負荷: 多数のオンデマンド/サブスクリプション要求をレポート サーバーが処理しています
複雑なレポート、および多数のデータを表示するレポートが要求されています
メモリを消費するアプリケーションが同じサーバーで他にも実行されている場合は、メモリ負荷状態が発生する可能性があります。
サーバーにさらにメモリを追加することか、サーバーから他のアプリケーションを削除することを考慮できます。
次の記事は、Reporting Services のメモリ構成について説明しています - http://technet.microsoft.com/ja-jp/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>