このモニターは、サーバーで SQL Server リレーショナル データベース エンジン プロセスが実行されていて、SSAS インスタンスの合計メモリ制限の構成値が指定のしきい値を超えるとアラートを生成し、SQL Server プロセスが十分なメモリを確保できるようにします。
SQL Server Analysis Services の合計メモリ制限の構成設定値を、コンピューター上の他のプロセスのためのメモリ割り当てに適合するように、適宜調整する必要があります。
特に、SQL Server リレーショナル データベース エンジンは、SSAS も実行しているコンピューター上のメモリ リソースを消費する一般的なプロセスの主要な例であり、そのような状況では、決まった量の同じリソースを大量消費する両者によって物理メモリの競合につながる可能性があります。両方のデータベース サービスがそれぞれ必要な機能を実行するために、互いに十分な物理メモリを確保できるように、両方のデータベース サービスを構成することが必要になります。SSAS の合計メモリ制限の構成が高すぎると、SSAS はメモリを過度に消費して、リレーショナル データベース エンジン (あるいは、実際に多くのメモリを消費する別のプロセス) との競合のために、物理メモリを使い果たしてしまう可能性があります。SQL Server の構成されたメモリ消費量に加えて、コンピューター上で必要とされるオペレーティング システムや他の代表的なプロセスのメモリ消費のための余地を設けられるよう、合計メモリ制限を十分に低い値に構成する必要があります。
メモリ構成の競合が起きたときには、管理者は各ユーザーと他のプロセスの要求とリソースとをはかりにかけてから、関係するすべてのプロセスの構成を適宜調整する必要があります。Microsoft データベース サーバーにおけるこの種の問題の最も一般的なシナリオは、SSAS のインスタンスと SQL Server リレーショナル データベース エンジンから生じます。幸いなことに、どちらのサービスにも、必要に応じて調整できる構成設定があります。どんな場合にも適するような SSAS の合計メモリ制限の設定や、SQL リレーショナル データベース エンジンの最大メモリ制限の設定といったものはないので、このアラートのしきい値は、それぞれ個別の環境を勘案して管理者が調整できるようになっています。この状況に遭遇したときは、考え得る多くの方法のいずれかを使って、条件を緩和することができます。
SQL Server インスタンスの最大メモリ制限の設定値を調整して、それらのプロセスによる消費を減らします。
SSAS インスタンスの合計メモリ制限の構成設定を低くして、それらのプロセスによる消費を減らします。
サーバーで使用できるメモリを増やします。
アラートのしきい値を調整します。
管理者が不必要と判断したアラートを無効にします。
Analysis Services メモリのプロパティに関する TechNet 資料
Analysis Services のサーバー構成プロパティ
名前 | 説明 | 既定値 |
有効 | ワークフローを有効または無効にします | はい |
アラートを生成する | ワークフローがアラートを生成するかどうかを定義する | はい |
間隔 (秒) | ワークフローを実行する定期的な実行間隔 (秒)。 | 604800 |
同期時刻 | 24 時間形式で指定した同期時刻。省略可能です。 |
|
警告しきい値 (%) | 正常性状態は、サーバー上で SQL Server リレーショナル データベース エンジン プロセスが実行されていて、SSAS インスタンスの合計メモリ制限の構成設定がしきい値を超えると変更されます。 | 40 |
タイムアウト (秒) | ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。 | 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.ConfigurationConflictWithSQLServer | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer" 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.ConfigurationConflictWithSQLServer" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer.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="ConfigurationConflict" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="NoConfigurationConflict" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>40</Threshold>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>