リソースガバナーはページの平均余命を保護するのに役立ちますか?
-
28-09-2020 - |
質問
トランザクションデータベース上のパーティションコピーにコピーする必要がある大きなテーブルをいくつか持っています。
私はこれが私のプロダクションアプリケーションのパフォーマンスを引き起こすというヒットを心配しています。
これを軽減するために、私は資源ガバナーを探しています。私はスクリプトを5%のCPUとメモリに制限されているリソースプールを使用するようにスクリプトを設定します。
これについての唯一の部分は私がよくわからないことはPLEへの影響です。
私が理解しているように、テーブルからの選択はキャッシュに値を読みます。これにより、キャッシュ内にある他のものを強制的に消します。(PLEの基本的な概念)しかし、「強制的」の項目は、私が指定した5%に限定されますか?
意味5%のメモリを使用した後、キャッシュされたアイテムを同じ5%にするだけのキャッシュアイテムを強制的に消灯します。(他の95%が影響を受けません。)
もう1つの尋ねる方法は次のとおりです。キャッシュリミット5%のキャッシュ制限と同じメモリ制限は?
解決
このMSDNページには、メモリ設定がクエリメモリにのみ影響を与える状態にあります。
min_memory_percentとmax_memory_percent
これらの設定は、他のリソースプールと共有できないリソースプール用に予約されている最小および最大量のメモリ量です。ここで参照されているメモリは、バッファプールメモリ(データとインデックスページなど)ではなく、クエリ実行許可メモリです。プールの最小メモリ値を設定すると、このリソースプールで実行される可能性のある要求に対して指定されたメモリの割合が使用可能になるようにすることを意味します。この場合、この場合、このプールに属するワークロードグループに要求がない場合でも、メモリが指定されたリソースプールに残ることがあるため、これはmin_cpu_percentと比較して重要な区分です。したがって、このメモリは、アクティブな要求がない場合でも、このメモリが他のプールで使用できなくなるため、この設定を使用するときに非常に注意することが重要です。プールの最大メモリ値を設定すると、このプールで要求が実行されている場合、それらはメモリのこの割合を得ることは決してないでください。
上記は、バッファプールがリソースプールの制限から除外されていることを示しています。したがって、プロセスを実行するためにバッファー・プール全体を空にする可能性があるアクションを実行することを目的としている場合は、オフ時間中にプロセスが実行されていることを確認したい場合があります。
以下は、MSDNブログからの抜粋、 SQL Serverページの平均余命:
ページ平均余命(PLE)は、バッファプールがどのように揮発性であるか(BP)の最良の表示です。 SQL Server:Buffer Manager PerfmonオブジェクトにあるPerfmonカウンタです。 NUMAシステムに対して考慮すべきPAGE LIFE期待カウンタもあります。ノードごとに同じロジックを使用して、NEDA以外のシステム上に同じロジックを使用します。
ボラティリティは、バッファプール内のページの平均「寿命」を取得して測定します(秒単位)。ページが上書きされているかエンジングされている場合は、新しい寿命全体を開始します。
だから多くのページが新しいデータで上書きされている場合、平均的なPLEは低くなり、BPのボラティリティは高くなります。
逆にBPのほとんどのページが上書きされずに長時間そばに残っている場合、平均PLEは高くなり、BPのボラティリティは低くなります。
それでは、なぜBPのボラティリティとPLEを気にかけますか? BPのボラティリティを知ることができるのは何ですか? 「良い」と「悪い」PLE図は何ですか?
PLEは、SQL ServerがどのくらいのSQL Serverがどのくらいの物理IOの尺度である可能性があります。身体的なIOは読み書きのための大きなパフォーマンスの懸念であるので、私はあなたの注意を引いたことができます。
ここでのコメントの質問から:
「クエリメモリ」とは何ですか?キャッシュとは異なるのですか?
クエリメモリはクエリの実行に使用されます。ソート、ビットマップ作成、ハッシュテーブルなどのようなものには一時的に使用されています。キャッシュにメモリ内テーブルデータが含まれています。
それは私の質問に対する答えのように聞こえますが、PLEはリソースガバナーによって全く保護されないことです。その音は右ですか?
正しい。ページの平均余命は、データページがどのくらいメモリに滞在するかについてのすべてです。