ページの予測保持期間

Microsoft.SQLServer.Linux.Monitor.DBEngine.PageLifeExpectancy (UnitMonitor)

DB エンジンのページの予測保持期間 (秒)

Knowledge Base article:

概要

ページの予測保持期間は、ページが参照されないままバッファー プールに存在する秒数です。ページの予測保持期間が長い場合、必要なデータはハード ドライブに移動せずにキャッシュにあります。

原因

ページの予測保持期間の値が著しく低い場合は、次の状況を示している可能性があります。

システムのメモリが少なすぎます

SQL Server 用に構成されたメモリが少なすぎます

適切でないインデックス デザイン

解決方法

I/O システムで負荷の処理状態をご確認ください。PhysicalDisk オブジェクトの 1 秒間のディスク読み取りの平均および 1 秒間のディスク書き込みの平均のカウンター値が高い場合 (通常は 10 ミリ秒を超える場合) は、システムがオーバーロードになっているか、クエリやインデックスに改善の余地があることを意味します。

SQL Server で大量のテーブルを同時に使用しているか、抽出条件による検索の代わりにフル スキャンが使用されているため、バッファー プールがオーバーロードになっている可能性があります。SQL Server のアクセス方法のフル スキャン/秒カウンターで問題を確認します。

SQL Server Profiler を使用し、パフォーマンス カテゴリの Showplan Statistics を参照すると、フル スキャンを引き起こしているアプリケーションを特定できることがあります。

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

名前

説明

既定値

アラートの優先順位

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

標準

アラートの重大度

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

エラー

有効

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

はい

アラートを生成する

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

はい

間隔 (秒)

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

300

サンプル数

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

6

同期時刻

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

 

しきい値

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

300

タイムアウト (秒)

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

200

データベース接続のタイムアウト (秒)

指定された期間中にデータベースにアクセスできない場合、ワークフローは失敗し、イベントが登録されます。

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.DBEngine.PageLifeExpectancy
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL on Linux: ページの予測保持期間が短すぎます
コンピューター "{1}" の SQL インスタンス"{0}" でページの予測保持期間が短すぎます。詳細については、[アラートのコンテキスト] タブを参照してください。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.DBEngine.PageLifeExpectancy" Accessibility="Public" Enabled="false" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.DBEngine.PageLifeExpectancy" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.DBEngine.PageLifeExpectancy.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<Threshold>300</Threshold>
<NumSamples>6</NumSamples>
<TimeoutSeconds>200</TimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<PerformanceCounterObject>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/PerformanceCounterObject$</PerformanceCounterObject>
</Configuration>
</UnitMonitor>