none
SQLserverパフォーマンスの件 RRS feed

  • 質問

  • はじめして

    SQLserverでDB管理を初めてやっている者ですが、切り分けがわからず質問させて下さい。

    SQLserverを使用しておりますが、データ格納が頻繁に行われていると処理が遅くなるとのことでパフォーマンスモニタで状況を確認しています。

    以下のパフォーマンス数値の中でPage /sec、Disk Read Bytes /secが非常に高い数字になっているように見えます。

    この数字上ですと過度のページングが発生していると判断できる数字でしょうか?(CPUあたりはあまり負荷が掛かっていないのですが)

    その他パーフォーマンス数字で気になる点あればご教授願います。

    OS:WindowsServer2008R2(Vmware上のゲストOS)

    DB:SQLserver2008R2SP1
    CPU:8コア/MEM:8GB(SQL:6GB)DISK:tempdb:10GB
    ユーザDB700GB(mdf・ldfと共に自動拡張無)
    以下のは平均数値
    Processor  %Processor Time→0.180
                  %Privileged Time→1,418
    System     Processor Queue Length→0.047
    Memory     Available Bytes→607,519,143,918
                  Page /sec→21,056
    SQLServer Buffer Manager

             Page Reads/sec→17,644,827
                      Page Writes/sec→8,964
                      Page Life Expectancy→3,455
    PhysicalDisk  

           Avg.Disk Queue Length→0,140
                  Current Disk Queue Length→0,068
                  %Disk Time→14,030
           Disk Read Bytes /sec→74,607,031
           Disk Read Write /sec→54,890,005

    2014年11月30日 12:14

回答

  • こんにちは。
    以下の解釈に基づいて、特に過度のページングによる問題は起きていないように見えます。
    質問者の方の環境においては実際にパフォーマンス問題が発生しているということでしょうか?

    • Memory\Available Bytes
      十分な空き容量があるように見えます。(500GB以上空いています)
    • SQL Server:Buffer Manager\Page Life Expectancy
      バッファー上に読み込まれたデータベース キャッシュは3000秒以上有効です。

    「過度のページング」という問題事象がなぜ発生し、どういった悪影響があるのか、
    ということを一度調べてみるとよいのではないでしょうか。

    • 回答としてマーク 星 睦美 2014年12月8日 5:02
    2014年12月2日 4:06
  • このパフォーマンスの情報は、「平均の数値」と記載していますが、遅延発生時の一定時間の平均の情報でしょうか。運用期間中すべでの平均的な数値であれば評価するのは難しいので、遅延発生時の情報から評価すべきかと思います。

    遅延ピーク時でこの状況であれば、OS自体のリソースをそんなに消費していないようには見えるので、SQL Serverで実行されているクエリについても確認された方がよいと思います。

    クエリの確認は、SQL Serverの動的管理ビュー、sys.dm_exec_query_statsなどで確認ができます。

    また、某氏のスライドも、問題の切り分けの参考になると思いますでご覧いただければと思います。

    (某氏、いつもリンクはらせてもらっています。ありがとうございます。汗)

    2014年12月2日 5:57
  • なんにしろデータベースの構成が分かんないと何とも言えないのではないでしょうか?

    一例としてプライマリキーがCLUSTEREDの場合以下の場合は挿入に余計にコストがかかります。

    ・アプリケーションの仕様がDELETE/INSERT

    ・(キー的に)末尾への追加ではなく途中への挿入が頻発する

    とりあえず「データの格納」が遅くなるのが更新か挿入かを調べましょう。

    • 回答としてマーク 星 睦美 2014年12月8日 5:02
    2014年12月6日 4:57

すべての返信

  • こんにちは。
    以下の解釈に基づいて、特に過度のページングによる問題は起きていないように見えます。
    質問者の方の環境においては実際にパフォーマンス問題が発生しているということでしょうか?

    • Memory\Available Bytes
      十分な空き容量があるように見えます。(500GB以上空いています)
    • SQL Server:Buffer Manager\Page Life Expectancy
      バッファー上に読み込まれたデータベース キャッシュは3000秒以上有効です。

    「過度のページング」という問題事象がなぜ発生し、どういった悪影響があるのか、
    ということを一度調べてみるとよいのではないでしょうか。

    • 回答としてマーク 星 睦美 2014年12月8日 5:02
    2014年12月2日 4:06
  • このパフォーマンスの情報は、「平均の数値」と記載していますが、遅延発生時の一定時間の平均の情報でしょうか。運用期間中すべでの平均的な数値であれば評価するのは難しいので、遅延発生時の情報から評価すべきかと思います。

    遅延ピーク時でこの状況であれば、OS自体のリソースをそんなに消費していないようには見えるので、SQL Serverで実行されているクエリについても確認された方がよいと思います。

    クエリの確認は、SQL Serverの動的管理ビュー、sys.dm_exec_query_statsなどで確認ができます。

    また、某氏のスライドも、問題の切り分けの参考になると思いますでご覧いただければと思います。

    (某氏、いつもリンクはらせてもらっています。ありがとうございます。汗)

    2014年12月2日 5:57
  • なんにしろデータベースの構成が分かんないと何とも言えないのではないでしょうか?

    一例としてプライマリキーがCLUSTEREDの場合以下の場合は挿入に余計にコストがかかります。

    ・アプリケーションの仕様がDELETE/INSERT

    ・(キー的に)末尾への追加ではなく途中への挿入が頻発する

    とりあえず「データの格納」が遅くなるのが更新か挿入かを調べましょう。

    • 回答としてマーク 星 睦美 2014年12月8日 5:02
    2014年12月6日 4:57
  • yasu11 さん、こんにちは。
    フォーラム オペレーターの星 睦美です。

    yasu11 さんからの質問に回答者からの返信を参考にしていただけたのではないかと思います。
    今回は勝手ながら私から[回答としてマーク] させていただきましたが、もし回答の内容に引き続き質問があれば遠慮なく[回答としてのマークの解除] をして返信できます。

    では、これからもSQL Server フォーラムをお役立てください。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2014年12月8日 5:07