Freier Speicherplatz des speicheroptimierten Datendateigruppen-Containers

Microsoft.SQLServer.2014.Monitor.Container.FreeSpacePercent (UnitMonitor)

Der Monitor gibt eine Warnung aus, wenn der freie Speicherplatz für den speicheroptimierten Datendateigruppen-Container unter die Einstellung für den Warnungsschwellenwert fällt. Dieser Wert wird als Prozentsatz der Gesamtgröße des speicheroptimierten Datendateigruppen-Containers plus freiem Speicherplatz ausgedrückt. Wenn der freie Speicherplatz unter den kritischen Schwellenwert fällt, gibt der Monitor eine kritische Warnung aus.

Knowledge Base article:

Zusammenfassung

Der Monitor gibt eine Warnung aus, wenn der freie Speicherplatz für den speicheroptimierten Datendateigruppen-Container unter die Einstellung für den Warnungsschwellenwert fällt. Dieser Wert wird als Prozentsatz der Gesamtgröße des speicheroptimierten Datendateigruppen-Containers plus freiem Speicherplatz ausgedrückt. Wenn der freie Speicherplatz unter den kritischen Schwellenwert fällt, gibt der Monitor eine kritische Warnung aus.

Der Ordner des speicheroptimierten Datendateigruppen-Containers nimmt normalerweise im Lauf der Zeit an Größe zu, da immer mehr Daten zu speicheroptimierten Tabellen hinzugefügt werden. Administratoren sollten den Speicherort daher überwachen, um sicherzustellen, dass genügend Speicherplatz für den Containerordner verbleibt.

Ursachen

Wenn auf dem Laufwerk, auf dem der Speicherort der Datenbank konfiguriert wurde, zu wenig Speicherplatz verfügbar ist, können Fehler entstehen, welche die Verarbeitung von Daten beeinträchtigen, Benutzerabfragen verzögern oder andere Anwendungen beeinträchtigen können, denen der gleiche Speicherplatz auf dem Datenträger zugewiesen ist.

Die Speicherzuweisung erfolgt im Rahmen von DML-Vorgängen in den langlebigen speicheroptimierten Tabellen. Sie müssen eine Speichermenge bis zum Vierfachen der Größe der langlebigen speicheroptimierten Daten konfigurieren. Wenn Sie den Speicher ordnungsgemäß konfiguriert haben, der Speicherplatz jedoch immer noch nicht ausreicht, können die von den Containern unterstützten IOPS-Vorgänge möglicherweise die Arbeitsauslastungsanforderungen nicht unterstützen. Allgemein wird für Container der dreifache IOPS-Wert der Datengenerierungsraten empfohlen, um die anfängliche Auffüllung der Daten-/Deltadateien und den automatischen Mergevorgang zu berücksichtigen, bei dem die Quelldaten-/Deltadateien gelesen und dann in einer Ziel-CFP zusammengeführt werden müssen.

Lösungen

Die Lösungen bei wenig verfügbarem Speicherplatz auf dem Datenträger sind von den jeweiligen Ursachen abhängig, die bei jedem Auftreten dieses Problems untersucht werden müssen. Zur Behebung sind zahlreiche Herangehensweisen möglich:

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

Name

Beschreibung

Standardwert

Warnungspriorität

Definiert die Warnungspriorität.

Normal

Warnungsschweregrad

Definiert den Warnungsschweregrad.

Fehler

Kritischer Schwellenwert

Der Status des Monitors wechselt zu "Kritisch", wenn der Wert unter diesen Schwellenwert sinkt.

10

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

Skriptverzögerung (Millisekunden)

Über diesen Parameter wird die Verzögerung zwischen aufeinanderfolgenden T-SQL-Abfragen festgelegt, die durch den Workflow ausgeführt werden. Dadurch lässt sich die Ressourcenbeanspruchung durch diesen Workflow bei einer großen Anzahl an Zielobjekten reduzieren. Halten Sie Rücksprache mit dem Microsoft-Support, bevor Sie diesen Parameter ändern.

0

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 Status des Monitors wechselt zu "Warnung", wenn der Wert unter diesen Schwellenwert sinkt.

20

Element properties:

TargetMicrosoft.SQLServer.2014.Container
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.MonitorType.Container.FreeSpacePercent
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: Nicht genügend freier Speicherplatz für speicheroptimierte Datendateigruppen-Container
Auf dem Laufwerk "{5}" ist nur {7} \% freier Speicherplatz für den speicheroptimierten Datendateigruppen-Container "{0}" verfügbar. Dieser Wert liegt unter dem für die Warnung konfigurierten Schwellenwert.
Server: {4}
SQL Server-Instanz: {3}
Datenbank: {2}
Dateigruppe: {1}
Container: {0}
Laufwerk (Bereitstellungspunkt): {5}
Datenträgergröße: {6} MB
Freier Speicherplatz für speicheroptimierten Datendateigruppen-Container: {8} MB ({7} \%)
Größe des speicheroptimierten Datendateigruppen-Containers: {9} MB
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.Monitor.Container.FreeSpacePercent" Target="SQL2014Core!Microsoft.SQLServer.2014.Container" ParentMonitorID="SystemHealth!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.2014.MonitorType.Container.FreeSpacePercent" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Monitor.Container.FreeSpacePercent.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Container"]/ContainerName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.FileGroup"]/GroupName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter5>
<AlertParameter6>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Container"]/ContainerStorage$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='DriveTotalSizeMB']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='FreeSpaceSpaceMB']$</AlertParameter9>
<AlertParameter10>$Data/Context/Property[@Name='AllocatedSizeMB']$</AlertParameter10>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Critical" MonitorTypeStateID="ContainerFreeSpaceCritical" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="ContainerFreeSpaceWarning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="ContainerFreeSpaceSuccess" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</SqlInstanceName>
<DatabaseName>$Target/Host/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Container"]/ContainerID$</DBFileId>
<Value>Property[@Name='FreeSpacePercent']</Value>
<CriticalThreshold>10</CriticalThreshold>
<WarningThreshold>20</WarningThreshold>
<TimeoutSeconds>300</TimeoutSeconds>
<ScriptDelayMsec>0</ScriptDelayMsec>
</Configuration>
</UnitMonitor>