Speicherkonfigurationskonflikt mit SQL Server

Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.ConfigurationConflictWithSQLServer (UnitMonitor)

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.

Knowledge Base article:

Zusammenfassung

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.

Ursachen

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.

Lösungen

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:

Extern

TechNet-Dokumentation zu Analysis Services-Speichereigenschaften

Konfigurieren von Servereigenschaften in Analysis Services

Leitfaden zur Leistung für SSAS (mehrdimensional)

Parameter, die außer Kraft gesetzt werden können

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

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.Instance
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.ConfigurationConflictWithSQLServer
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: Speicherkonfigurationskonflikt mit SQL Server
Durch die Konfigurationseinstellung für das Gesamtspeicherlimit für die SQL Server Analysis Services-Instanz ({0} GB) verbleiben {1} von {2} GB für das Betriebssystem und SQL Server. Dieser Wert liegt unter dem konfigurierten Schwellenwert für die Warnung.
Gesamtspeicher auf dem Server: {2} GB
Insgesamt verwendeter Speicher: {5} GB
Von Nicht-SSAS-Prozessen verwendeter Speicher: {4} GB
Von SSAS verwendeter Speicher: {3} GB
Unteres SSAS-Speicherlimit: {6} GB ({7} \%)
Oberes SSAS-Speicherlimit: {0} GB ({8} \%)
RunAsDefault

Source Code:

<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>