Taux de fichiers Checkpoint File Pair périmés dans les données à mémoire optimisée

Microsoft.SQLServer.Linux.Monitor.DBFilegroupFx.StaleCFPs (UnitMonitor)

Le moniteur signale un état d'avertissement et génère une alerte quand le taux de fichiers Checkpoint File Pair périmés d'un groupe de fichiers de données à mémoire optimisée dépasse les seuils spécifiés.
Notez que les alertes sont générées seulement si la base de données correspondante est relativement grande (total d'au moins 300 fichiers Checkpoint File Pair).

Knowledge Base article:

Récapitulatif

Ce moniteur signale un état d'avertissement et génère une alerte quand le taux de fichiers Checkpoint File Pair périmés d'un groupe de fichiers de données à mémoire optimisée dépasse les seuils spécifiés.

Notez que les alertes sont générées seulement si la base de données correspondante est relativement importante (300 fichiers de point de contrôle maximum).

Les fichiers CFP périmés sont des fichiers qui restent dans le système en attente de la troncation du journal ou du garbage collection.

Causes

La fusion des fichiers CFP est déclenchée selon une stratégie de fusion interne. Pour plus d’informations, consultez cet article.

Résolutions

Effectuez une fusion manuelle et forcez le nettoyage de la mémoire, comme décrit dans les articles suivants :

Paramètres remplaçables

Nom

Description

Valeur par défaut

Priorité d'alerte

Définit la priorité de l'alerte.

Normale

Gravité d'alerte

Définit la gravité de l'alerte.

Avertissement

Seuil de fichiers Checkpoint File Pair

Une alerte est générée si le nombre total de fichiers Checkpoint File Pair est supérieur ou égal au seuil de fichiers Checkpoint File Pair.

300

Activé

Active ou désactive le flux de travail.

Oui

Génère des alertes

Définit si le flux de travail génère une alerte.

Oui

Intervalle (en secondes)

Intervalle régulier (en secondes) auquel exécuter le flux de travail.

300

Nombre d'échantillons

Indique le nombre de dépassements des seuils par une valeur mesurée avant la modification de l'état.

6

Heure de synchronisation

Heure de la synchronisation spécifiée selon un format de 24 heures. Peut être omise.

 

Seuil

Le rapport collecté sera comparé à ce paramètre.

60

Délai d'expiration (secondes)

Spécifie la durée pendant laquelle le flux de travail est autorisé à s'exécuter avant d'être fermé et marqué comme ayant échoué.

200

Délai d’attente pour la connexion de base de données (secondes)

Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBFilegroupFx
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.DBFilegroupFx.StaleCFPs
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL sur Linux : Le taux de fichiers CFP périmés est supérieur aux seuils
Le taux de fichiers Checkpoint File Pair périmés par rapport au nombre total de fichiers CFP a atteint les seuils.
Serveur : {1}
Instance SQL Server : {0}
Base de données : {2}
Groupe de fichiers : {3}
Taux de fichiers Checkpoint File Pair périmés : {4}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.DBFilegroupFx.StaleCFPs" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBFilegroupFx" ParentMonitorID="Health!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.Linux.MonitorType.DBFilegroupFx.StaleCFPs" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.DBFilegroupFx.StaleCFPs.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Filegroup"]/GroupName$</AlertParameter4>
<AlertParameter5>$Data/Context/SampleValue$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ErrorState" MonitorTypeStateID="ErrorState" HealthState="Warning"/>
<OperationalState ID="SuccessState" MonitorTypeStateID="SuccessState" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<MachineName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<DatabaseName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<Threshold>60</Threshold>
<CfpCountThreshold>300</CfpCountThreshold>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<NumSamples>6</NumSamples>
</Configuration>
</UnitMonitor>