Speicherauslastung

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

Der Monitor gibt eine Warnung aus, wenn die Speicherbelegungen durch die SSAS-Instanz den konfigurierten Warnungsschwellenwert überschreiten. Dieser Wert wird als Prozentsatz der Einstellung des Gesamtspeicherlimits für die SSAS-Instanz ausgedrückt. Der Monitor gibt eine kritische Warnung aus, wenn die Belegungen den konfigurierten kritischen Schwellenwert überschreiten.

Knowledge Base article:

Zusammenfassung

Der Monitor gibt eine Warnung aus, wenn die Speicherbelegungen durch die SSAS-Instanz den konfigurierten Warnungsschwellenwert überschreiten. Dieser Wert wird als Prozentsatz der Einstellung des Gesamtspeicherlimits für die SSAS-Instanz ausgedrückt. Der Monitor gibt eine kritische Warnung aus, wenn die Belegungen den konfigurierten kritischen Schwellenwert überschreiten.

Ursachen

Unter bestimmten Umständen kann die Einstellung des Gesamtspeicherlimits von SSAS nahezu erreicht oder überschritten werden. In manchen Fällen benötigt ein einzelner Vorgang mehr Speicher als durch das Limit vorgegeben, und trotz aller Bemühungen des Servers, Speicher von anderen, weniger dringenden Tasks freizugeben, kann es mitunter vorkommen, dass die Belegungen die konfigurierten Limits überschreiten müssen, da es andernfalls zwangsläufig zu einem Fehler bei dem Vorgang kommt.

Dies kann beim Verarbeiten von großen Dimensionen oder Faktendaten auftreten, insbesondere wenn Attribute mit Datentypen vorhanden sind, die viel Platz belegen (z. B. lange Zeichenfolgen, Binärdaten usw.), oder wenn die Dimension zahlreiche Mitglieder enthält. Auch können auf dem Server ausgeführte Abfragen sehr viel Platz belegen, insbesondere wenn mehrere Dimensionen kreuzverknüpft werden oder erhebliche Berechnungen zur Ableitung von Ergebnissen für Zellen erforderlich sind, die nicht schon vorher von einem vorausschauenden Administrator aggregiert wurden oder einfach nicht im Voraus aggregiert werden können.

Lösungen

Wenn die Speicherlimits auf einem Server überschritten werden, stehen Administratoren zur Lösung des Problems zahlreiche Herangehensweisen zur Verfügung. Administratoren sollten die zugrunde liegende Aktivität, durch die die Speicherauslastung verursacht wird, die Anforderungen an die Arbeitsauslastung auf dem Server, die verfügbaren Ressourcen und weitere Faktoren analysieren. Ebenso sollten sie das Handbuch zur Leistung mehrdimensionaler SSAS-Datenbanken lesen und erwägen und sich bei Bedarf an den Microsoft Support wenden. Dann kann das Problem mit einer der folgenden Herangehensweisen gelöst werden.

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

Kritischer Schwellenwert (%)

Der Integritätsstatus ändert sich in "Kritisch", wenn die Speicherauslastung durch Analysis Services (%) den Schwellenwert überschreitet.

95

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.

900

Anzahl der Stichproben

Der Integritätsstatus ändert sich, wenn die Anzahl der Schwellenwertverletzungen höher als die Mindestanzahl der Verletzungen oder gleich der Mindestanzahl der Verletzungen ist.

4

Synchronisierungszeit

Die in einem 24-Stunden-Format angegebene Synchronisierungszeit. Kann ausgelassen werden.

 

Timeout (Sekunden)

Gibt die Zeit an, die der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlgeschlagen markiert wird.

300

Schwellenwert für Warnung (%)

Der Integritätsstatus ändert sich in "Warnung", wenn die Speicherauslastung durch Analysis Services (%) den Schwellenwert überschreitet, aber noch unter dem kritischen Schwellenwert (%) liegt.

80

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: Hohe Speicherauslastung
Die aktuelle Speicherauslastung für SSAS ({3} GB) überschreitet den konfigurierten Schwellenwert, ausgedrückt als Prozentwert der Einstellung für das Gesamtspeicherlimit für die Instanz.
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.MemoryUsage" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.MemoryUsage.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</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="Error" MonitorTypeStateID="Above" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Between" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Below" HealthState="Success"/>
</OperationalStates>
<Configuration>
<WarningThreshold>80</WarningThreshold>
<CriticalThreshold>95</CriticalThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>