0

「SQL Server 2008 Query Performance Tuning Distilled」という本を読んでいると、perf mon メトリックの説明が少し曖昧であることがわかりました。カバーされたすべてのメトリックを、それぞれの感覚とともにリストします。必要に応じて説明を共有したいと思います。私のコメントが示唆しているように、私が助けを求めているのは主に項目 2、6、および 7 です。

  1. Available Bytes : 物理メモリの空き容量。一目瞭然
  2. Pages/sec および Page Faults/sec : 99% クリア。唯一の問題は、ページがメモリ内のある場所から別の場所にスワップされる理由です (ソフト フォールト)。
  3. Buffer Cache Hit Ratio : 新しい要求されたメモリがすぐに利用できる頻度。おそらく名前が不十分ですが、かなり明確に見えます。代わりに、「Buffer Pool Free Hit Ratio」と呼ぶべきだったのではないでしょうか。
  4. Page Life Expectancy : このバッファー プール キャッシュ メトリックは、キャッシュ ヒットの頻度と使用可能なメモリの両方によって制御されます。かなり明確に見えます。
  5. Lazy writes/sec : ダーティ バッファをディスクに書き込む速度。かなり明確に見えます。
  6. Memory Grants Pending : 「SQL Server メモリ内のメモリ許可を保留中のプロセスの数」。変。SQL Server メモリに関連付けられているプロセスは 1 つだけであるべきではありませんか? 明確ではありません!
  7. ターゲット/合計サーバー メモリ: 「サーバー メモリの合計がターゲット サーバー メモリよりもはるかに少ない場合は、おそらく最大サーバー メモリ構成パラメーターの設定が低すぎる」と言われます。やや不明。SQL サーバーのメモリ使用量の合計を制御するtarget server memory2つの設定があるのはなぜですか? max server memory「合計」はすべてのデータベースインスタンスを組み合わせたものであり、「最大」は個々のデータベースごとであるためですか?

おそらく項目 7 に関連する全体的な質問は、各データベース インスタンスが、使用可能なすべての物理メモリの (ほぼ) 合計に相当する最大メモリ使用量に設定されている場合にどうなるかということです。SQL Server は、ホストしているすべてのインスタンスにそれほど多くの権限を与えず、必要に応じてバランスを取ると思いますか? それよりも複雑ですか?

4

1 に答える 1

1

唯一の問題は、ページがメモリ内のある場所から別の場所にスワップする理由です(ソフトフォールト)。

ソフトフォールトは実際にはページを移動しません。プロセスワーキングセットは連続してトリミングされ、ページは「スタンバイ」状態になります。それらはまったく同じ物理的な場所を保持しますが、カーネル内のそれらの記述子は「スタンバイ」としてマークされます。このページを参照するプロセスでは「ソフトフォールト」が発生します。つまり、ページ記述子が「修正」され、ページがプロセスワーキングセットに戻ります。トリミングとソフトフォールトのこのプロセス全体で、ページのコンテンツが実際に物理RAMに移動されることはありません。

バッファキャッシュヒット率:要求された新しいメモリがすぐに利用できる頻度

いいえ、これは、DBページに対する要求がメモリ内でページを検出し、ディスクからページをフェッチするためにIOを発行する必要がなかったことを意味します。

保留中のメモリ許可:「SQLServerメモリ内のメモリ許可のために保留中のプロセスの数」。

これはまったく別のトピックです。ここを読んでください:SQLサーバーのメモリ付与について

ターゲット/合計サーバーメモリ

SQLOSのメモリマネージャーとSQLServerのバッファープールを読み取ります。少し古いですが、それでもかなり正確で、特にSQLServer2012より前のものです。

各データベースインスタンスが、使用可能なすべての物理メモリの最大メモリ使用量を(ほぼ)合計するように構成されている場合はどうなりますか

これは、SQLServerで期待される操作モードです。これは、ホスト上のすべてのメモリをキャプチャして、それ自体を管理するように設計されています。これが、SQL Serverとともに他のプロセスをホストするように指示されていない理由です(たとえば、IIS、Exchange、ADドメインコントローラー、SSIS、RS、ASなどはありません)。これが、ホストごとに1つのインスタンスをホストするのが最適な理由でもあります。

于 2012-08-14T13:38:12.237 に答える