メモリ最適化データの古いチェックポイント ファイル ペアの比率

Microsoft.SQLServer.2016.Monitor.DBFileGroupFx.StaleCFPs (UnitMonitor)

メモリ最適化データ ファイル グループの古いチェックポイント ファイル ペアの比率が指定されたしきい値を上回ると、モニターは警告状態を報告し、アラートを生成します。
アラートは、対応するデータベースがかなり大きい (合計で 300 以上のチェックポイント ファイル) 場合にのみ生成されますのでご注意ください。

Knowledge Base article:

概要

メモリ最適化データ ファイル グループ内の古いチェックポイント ファイル ペアの部分が指定されたしきい値を上回ると、モニターは警告状態を報告し、アラートを生成します。

アラートは、対応するデータベースがかなり大きい (合計で 300 以上のチェックポイント ファイル) 場合にのみ生成されますのでご注意ください。

古い CFP は、ログの切り捨てまたはガベージ コレクションを待機している、システムに残されたファイルです。

原因

CFP のマージは、内部マージ ポリシーに基づいて開始されます。詳しくは、 この記事をご覧ください。

解決方法

次の記事で説明するように、手動マージを実行し、強制的にガベージ コレクションを行います:

上書き可能なパラメーター

名前

説明

既定値

アラートの優先度

アラートの優先順位を定義します。

アラートの重要度

アラートの重大度を定義します。

警告

チェックポイント ファイル ペアのしきい値

チェックポイント ファイル ペアの合計数がチェックポイント ファイル ペアのしきい値以上の場合、アラートが生成されます。

300

有効

ワークフローを有効または無効にします。

はい

アラートを生成する

ワークフローがアラートを生成するかどうかを定義します。

はい

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

300

サンプル数

測定値が何回しきい値に違反すると状態変更が生じるかを示します。

6

スクリプト遅延 (ミリ秒)

このパラメーターは、ワークフローによって実行される、連続する T-SQL クエリ間の遅延を設定します。これは、大量のターゲット オブジェクトが存在する際に、ワークフローによって生成されるフットプリントを削減するのに役立つ場合があります。このパラメーターを変更する前に Microsoft サポートに連絡してください。

0

同期時刻

24 時間形式で指定した同期時刻。省略可能です。

 

しきい値

収集された比率はこのパラメーターと比較されます。

60

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

180

Element properties:

TargetMicrosoft.SQLServer.2016.DBFileGroupFx
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBFileGroupFx.StaleCFPs.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: 古い CFP の部分がしきい値を超えています
CFP の合計数に対する古いチェックポイント ファイルのペアの比率がしきい値に達しました。
サーバー: {1}
SQL Server インスタンス: {0}
データベース: {2}
ファイル グループ: {3}
古いチェックポイント ファイル ペアの比率: {4}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Monitor.DBFileGroupFx.StaleCFPs" Target="SQL2016Core!Microsoft.SQLServer.2016.DBFileGroupFx" ParentMonitorID="SystemHealth!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.2016.DBFileGroupFx.StaleCFPs.MonitorType" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitor.DBFileGroupFx.StaleCFPs.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.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/>
<ServerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<DatabaseName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<Threshold>60</Threshold>
<CfpCountThreshold>300</CfpCountThreshold>
<TimeoutSeconds>180</TimeoutSeconds>
<ScriptDelayMsec>0</ScriptDelayMsec>
<NumSamples>6</NumSamples>
</Configuration>
</UnitMonitor>