Gesamtspeicherlimit-Konfiguration

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

Der Monitor warnt, wenn das konfigurierte Gesamtspeicherlimit für die SSAS-Instanz den konfigurierten Schwellenwert überschreitet, sodass die Zuweisung von physischem Speicher für grundlegende Funktionen des Betriebssystems gefährdet ist (mindestens 2 GB).

Knowledge Base article:

Zusammenfassung

Der Monitor warnt, wenn das konfigurierte Gesamtspeicherlimit für die SSAS-Instanz den konfigurierten Schwellenwert überschreitet, sodass die Zuweisung von physischem Speicher für grundlegende Funktionen des Betriebssystems gefährdet ist. Darüber hinaus berücksichtigt die Konfiguration keine möglichen Speicherbelegungen durch andere Prozesse als die spezifische überwachte Instanz. Dies muss von Administratoren beim Anpassen der Gesamtspeicherlimit-Einstellungen nach gründlichem Lesen des Handbuchs zur Leistung mehrdimensionaler SSAS-Datenbanken außerdem berücksichtigt werden.

Ursachen

Das Gesamtspeicherlimit muss so konfiguriert sein, dass dem Betriebssystem zumindest ausreichend Speicher für grundlegende Funktionen der Speicherverwaltung sowie für die Interaktion mit Treibern und Hardware verbleibt. Wenn für das Betriebssystem nicht genügend Speicher verfügbar ist, um diese grundlegenden Funktionen auszuführen, können Systeminstabilitäten oder Systemfehler auftreten. Die Einstellung muss daher etwas unter 100 % konfiguriert sein, damit eine ausreichende Verfügbarkeit von physischem Speicher für die entsprechenden Funktionen sichergestellt ist. Ist die Einstellung zu hoch, warnt dieser Monitor vor der entsprechenden Bedingung.

Die SSAS-Standardkonfiguration für das Gesamtspeicherlimit beträgt 80. Dieser Wert entspricht 80 % des verfügbaren physischen Speichers auf dem Server. Sind weitere speicherintensive Prozesse vorhanden (z. B. das relationale SQL Server-Datenbankmodul), müssen sie berücksichtigt und die Speicherlimiteinstellungen entsprechend verringert werden. Wird die Zahl zu hoch gewählt, steht möglicherweise nicht mehr genug physischer Speicher für das Betriebssystem zur Verfügung. Dies kann zu einer erheblichen Auslagerung von Arbeitsspeicher auf den Datenträger und damit zu ineffizienter Serverleistung führen.

Falls eine bestimmte Byteanzahl erforderlich ist: Werte über 100 werden als Anzahl von Bytes des physischen Speichers interpretiert.

Hinweis: Das relationale SQL Server-Datenbankmodul unterstützt eine feste Begrenzung für den maximalen Speicher. Das Gesamtspeicherlimit für das SSAS-Modul funktioniert jedoch etwas anders. Das Gesamtspeicherlimit ist der Grenzwert, ab dem der Server mit Nachdruck versucht, so schnell wie möglich Speicher freizugeben. Entsprechend ist das untere Speicherlimit der Grenzwert, ab dem der Server noch "zögerlich" versucht, Speicher vom SSAS-Cache freizugeben, um die Auswirkungen auf vorhandene Sitzungen oder Abfragen, die sich bereits in der Ausführung befinden, möglichst gering zu halten. Beim Erreichen des Gesamtspeicherlimits wird die Serverleistung ggf. beeinträchtigt, da der Server mit großem Nachdruck Speicher aus dem Cache freigibt. Der Server unterstützt darüber hinaus die Festlegung eines festen Speicherlimits – ein Punkt, ab dem der Server damit beginnt, willkürlich Sitzungen zu beenden, um Speicher freizugeben. Dies kann zu Fehlern bei einigen Benutzern führen, weshalb das Gesamtspeicherlimit nicht in Form eines festen Limits erzwungen wird, da manche Abfragen oder Aufträge naturgemäß sehr speicherintensiv sein können und das OLAP-Modul alle Anstrengungen unternimmt, sie innerhalb der für das Modul konfigurierten Grenzen zu verarbeiten.

Lösungen

Diese Bedingung kann durch eine der folgenden Maßnahmen behoben werden:

Extern

Überlegungen zur Speicherkonfiguration und Speichergröße in SQL Server 2008

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 (GB)

Der Monitor warnt, wenn das konfigurierte Gesamtspeicherlimit für das Betriebssystem den konfigurierten Schwellenwert überschreitet, sodass die Zuweisung von physischem Speicher für grundlegende Funktionen des Betriebssystems gefährdet ist (mindestens 2 GB).

2

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.TotalMemoryConfiguration
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: Ungültige Konfiguration des Gesamtspeicherlimits
Das konfigurierte Gesamtspeicherlimit für die SSAS-Instanz ({0} GB) überschreitet den konfigurierten Schwellenwert für erforderliche Betriebssystemfunktionen und führt möglicherweise zur Systeminstabilität oder zu einem Systemfehler.
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.TotalMemoryConfiguration" 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.TotalMemoryConfiguration" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.TotalMemoryConfiguration.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="NotConfigured" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Configured" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Threshold>2</Threshold>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>