Rapporto coppie di file di checkpoint non aggiornate di dati ottimizzati per la memoria

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

Il monitoraggio segnala uno stato di avviso e genera un avviso quando la percentuale di coppie di file di checkpoint non aggiornate nel filegroup di dati ottimizzati per la memoria è superiore alle soglie specificate.
Si noti che gli avvisi vengono generati unicamente se il database corrispondente è ragionevolmente grande (300 o più file di checkpoint in totale).

Knowledge Base article:

Riepilogo

Il monitoraggio segnala uno stato di avviso e genera un avviso quando la percentuale di coppie di file di checkpoint non aggiornate nel filegroup di dati ottimizzati per la memoria è superiore alle soglie specificate.

Si noti che gli avvisi vengono generati unicamente se il database corrispondente è ragionevolmente grande (300 o più file di checkpoint in totale).

Le coppie di file di checkpoint non aggiornate sono file lasciati nel sistema in attesa del troncamento del log o del processo di Garbage Collection.

Cause

L'unione delle coppie di file di checkpoint viene avviata in base ai criteri di unione interni. Per informazioni dettagliate, vedere questo articolo.

Risoluzioni

Eseguire un'unione manuale e forzare il processo di Garbage Collection come descritto negli articoli seguenti:

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Priorità avviso

Definisce la priorità dell'avviso.

Normale

Gravità avviso

Definisce la gravità dell'avviso.

Avviso

Soglia delle coppie di file di checkpoint

Se il numero totale di coppie di file di checkpoint è maggiore o uguale alla soglia delle coppie di file di checkpoint, viene generato un avviso.

300

Abilitato

Abilita o disabilita il flusso di lavoro.

Genera avvisi

Definisce se il flusso di lavoro genera un avviso.

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

300

Numero di campioni

Indica quante volte un valore misurato deve violare le soglie prima che venga modificato lo stato.

6

Tempo di sincronizzazione

Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa.

 

Soglia

Il rapporto raccolto verrà confrontato con questo parametro.

60

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

200

Timeout per la connessione di database (secondi)

Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato.

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 in Linux: La percentuale di coppie di file di checkpoint non aggiornate è superiore alle soglie
Il rapporto tra coppie di file di checkpoint non aggiornate e numero totale di coppie di file di checkpoint ha raggiunto le soglie.
Server: {1}
Istanza di SQL Server: {0}
Database: {2}
Filegroup: {3}
Rapporto coppie di file di checkpoint non aggiornate: {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>