none
Cache Hit Ratioについて RRS feed

  • 質問

  • お世話になります。

    現在SQLServer2005StandardEditionをメモリ4GBで運用して、

    パフォーマンス評価の1項目としてBUfferCacheHitRatioをパフォーマンスメータで確認しています。

    ところが、同僚から「当該項目はスワップも含んでいるので、評価値として適切でない」と言われました。

    SQLSの内部キャッシュもスワップするので、キャッシュ率高い=早くないという趣旨でした。

    この意見は正しいのでしょうか?

    また今回のサーバのPageFaultsが約10/secくらなのですが、これならスワップほとんど無いって事と思うので

    CacheHitRatioもパフォーマンス評価値となるでしょうか?

     

    2007年12月25日 0:33

回答

  • 何を知りたいと考えているのかよくわからない、というのが投稿を見て感じたことです。

    まず次の言葉があいまいな使われ方のため、何を指しているのかよくわかりません。

     

    > スワップ

    > SQL Server の内部キャッシュ

    > パフォーマンス評価値

     

    SQLServer: Buffer Manager - Buffer cache hit ratio カウンタの定義は "ディスクから読み取らずに、バッファ プール内で見つかったページのパーセンテージ。" になります。ページはデータファイルを区切る単位ですから、Buffer cache hit ratio は mdf ファイルに対するディスク アクセスを節約した率と理解できます。ディスクではなくより高速にアクセスできる物理メモリというストレージ デバイスを有効に使用した率であり、物理メモリ リソースを有効に使っているかまたは SQL Server に十分な物理メモリ リソースが割り当てられているかを判断する指標の一つです。

     

    mdf ファイルに格納されているもので "SQL Server の内部キャッシュ" という言葉に当てはまりそうなものと言えば、tempdb や distribution データベースのデータです。例えば一時テーブルに何度もアクセスするためにページがキャッシュされてヒットし、その結果ヒット率が上昇することの何が問題なのでしょうか。

     

    また、記述されている内容から判断するとどうも仮想メモリのページング ファイルと SQL Server のページを混同しているようにも見えます。

     

    まずは次のことをしてみてはいかがでしょうか。

     

    1. スワップ/SQL Server の内部キャッシュとは何か同僚と議論する

    2. Buffer cache hit ratio カウンタから何を知りたかったか考えてみる

    3. 自分が何のパフォーマンスを知りたいのか考えてみる

    2007年12月25日 16:20