Der Monitor warnt, wenn auf dem Server ein Prozess des relationalen SQL Server-Datenbankmoduls ausgeführt wird und die Konfiguration des Gesamtspeicherlimits für die SSAS-Instanz über dem angegebenen Schwellenwert liegt, um sicherzustellen, dass für den SQL Server-Prozess genügend Speicher verfügbar ist.
Die Konfigurationseinstellung für das Gesamtspeicherlimit für SQL Server Analysis Services muss angepasst werden, um Speicherbelegungen für andere Prozesse auf dem Computer zu berücksichtigen.
Das relationale SQL Server-Datenbankmodul ist ein besonders gutes Beispiel für einen häufigen Prozess, der Speicherressourcen auf einem Computer belegen kann, auf dem auch SSAS ausgeführt wird. Dieser Umstand kann zur Konkurrenz um physischen Speicher zwischen beiden Prozessen führen, die dieselbe feste Ressource intensiv nutzen. Daher ist es erforderlich, dass beide Datenbankdienste so konfiguriert werden, dass sie einander genügend physischen Speicher zum Ausführen der jeweils erforderlichen Funktionen lassen. Wenn die Konfiguration des Gesamtspeicherlimits für SSAS zu hoch ist, belegt SSAS möglicherweise zu viel Speicher, was aufgrund der Konkurrenz mit dem relationalen Datenbankmodul (oder auch mit anderen speicherintensiven Prozessen) zur Auslastung des physischen Speichers führt. Das Gesamtspeicherlimit muss ausreichend niedrig konfiguriert sein, um die konfigurierte Speicherbelegung von SQL Server plus eine Reserve für die auf einem Computer erforderlichen Speicherbelegungen für Betriebssystem und andere typische Prozesse zuzulassen.
Bei Speicherkonfigurationskonflikten muss ein Administrator die Ressourcen und Anforderungen der Benutzer und anderer Prozesse berücksichtigen und dann die Konfigurationen aller relevanten Prozesse entsprechend anpassen. Das auf einem Microsoft-Datenbankserver für diese Art von Problem häufigste Szenario entsteht durch eine oder mehrere SSAS-Instanzen und durch das relationale SQL Server-Datenbankmodul. Glücklicherweise verfügen beide Dienste über Konfigurationseinstellungen, die nach Bedarf angepasst werden können. Es existiert keine allgemeine Einstellung für das Gesamtspeicherlimit für SSAS und auch keine Einstellung für das maximale Speicherlimit für das relationale SQL-Datenbankmodul. Der Schwellenwert für diese Warnung kann daher vom Administrator umgebungsspezifisch angepasst werden. Tritt die Warnung auf, stehen folgende Herangehensweisen zur Behebung zur Verfügung:
Passen Sie die Einstellung für das maximale Speicherlimit von SQL Server-Instanzen an, sodass diese Prozesse weniger Speicher belegen.
Verringern Sie die Konfigurationseinstellung für das Gesamtspeicherlimit für SSAS-Instanzen, sodass diese Prozesse weniger Speicher belegen.
Erhöhen Sie den verfügbaren Arbeitsspeicher auf dem Server.
Passen Sie den Schwellenwert für die Warnung an.
Deaktivieren Sie die Warnung in Fällen, in denen sie vom Administrator als nicht erforderlich eingestuft wird.
TechNet-Dokumentation zu Analysis Services-Speichereigenschaften
Konfigurieren von Servereigenschaften in Analysis Services
Leitfaden zur Leistung für SSAS (mehrdimensional)
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow | Ja |
Generiert Warnungen | Definiert, ob der Workflow eine Warnung generiert | Ja |
Intervall (Sekunden) | Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll. | 604800 |
Synchronisierungszeit | Die in einem 24-Stunden-Format angegebene Synchronisierungszeit. Kann ausgelassen werden. |
|
Warnungsschwellenwert (%) | Der Integritätsstatus ändert sich, wenn auf dem Server ein Prozess des relationalen SQL Server-Datenbankmoduls ausgeführt wird und die Konfigurationseinstellung für das Gesamtspeicherlimit für die SSAS-Instanz den Schwellenwert überschreitet. | 40 |
Timeout (Sekunden) | Gibt die Zeit an, die der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlgeschlagen markiert wird. | 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>