メモリの自動チューニング機能を完全に把握しよう:SQL Server 2000 チューニング全工程(1)(2/3 ページ)
本連載ではSQL Server 2000のチューニングに関するノウハウを解説する。SQL Server 2000は自動チューニング機能を持つために、チューニングはあまり必要ないと思われがちだが、そのアーキテクチャを理解し適切にツール類を使用しなければ、本来のパフォーマンスを得られない。(編集局)
システム管理者が行うチューニング作業
ここまで、SQL Serverが管理しているメモリ領域とその動的管理の仕組みを見てきました。SQL Serverはメモリへの要求を動的に管理するように設計されており、この処理は多くの場合、適切に機能します。メモリの自動チューニングの設定は、問題がない限り設定を変更する必要はないでしょう。
このようなメカニズムに対して、システム管理者が意識して行うべき主な作業として、2つ挙げておきます。1つ目はSQL Serverのメモリ プールに対して物理メモリのサイズが適正であるかを監視することです。そして、もう1つが、サーバを単一のSQL Serverインスタンス専用で使用するのではなく、複数インスタンスで構成したり、SQL Server以外にもサービスを同時に稼働させている場合のメモリ設定の変更です。
メモリの使用状況の監視
物理メモリの空きが少なくなると、メモリ プール内のバッファキャッシュに必要なデータページが見つからず、ページングが発生し、物理ディスクへのIOが増加することになります。SQL Serverが管理するキャッシュの利用状況を調べるには、DBCC SQLPERFステートメントでLRUSTATSオプションを使用します。
以下はDBCC SQLPERF(LRUSTATS)が返す値の意味と推奨される閾値になります。
列名 | 内容 | 推奨される値 |
---|---|---|
Cache Hit Ratio | データキャッシュ上で要求するデータを発見できた比率 | 70%以上 |
Cache Flushes | 空きページを作成するためにページをキャッシュからフラッシュした回数 | 100以下 |
Free Page Scan(Avg) | 空きページを探してバッファ(キャッシュ)内をスキャンした平均ページ数 | 10以下 |
Free Page Scan(Max) | 空きページを探してバッファ(キャッシュ)内をスキャンした最大ページ数 | - |
Min Free Buffers | スレッドが維持しようとするフリーバッファプール内の最小キャッシュバッファ数の基準値 | Free Buffersの値がこの値を下回らないようにする |
Cache Size | Cache Sizeキャッシュ内の総ページ数 | - |
Free Buffers | フリーバッファプール内の現在のキャッシュバッファ数 | - |
表2 DBCC SQLPERF(LRUSTATS)が返す値 |
各値が閾値を超えるようになった場合、物理メモリが不足していることが考えられますので、メモリの追加を検討します。また、フリーバッファプール内の現在のキャッシュバッファ数を示すFree Buffersが0の場合も、ページングが発生した状態になりますので、メモリを追加してください。
SQL Serverの監視機能を使用する
システムの稼働状況を気にしながら、定期的にDBCC SQLPERF(LRUSTATS)コマンドを定期的に実行するような運用は、システムの規模が大きくなったり、24時間稼働が前提になってくると無理があります。Windows環境で、パフォーマンスの監視を設定する場合、システムモニタを使用することが一般的ですが、SQL Serverエージェントの警告の機能を設定すれば、メール通知も行えるため便利です。
警告を使用したBuffer Cache Hit Ratio監視の設定方法は次の手順になります。
1.SQL Serverエージェントを起動します。
2.SQL Serverエージェントは既定ではOSの起動時に自動で起動しない設定になっているため、メモリの監視を常に行う場合は、SQL Serverサービスマネージャの[サービス]で、SQL Server Agentを選択し、[OS起動時にサービスを自動的に開始]にチェックを入れておきます。
3.[SQL Server エージェントのプロパティ]ダイアログ ボックスで、[メール プロファイル]リストから、SQL Server エージェントサービス用のアカウントに対して設定した有効なMAPIプロファイル名を指定します。[OK]をクリックしSQL Server エージェント サービスを再起動します。
4.SQL Server Enterprise Managerのツリーから[警告]アイコンを選択し右クリックします。[新規警告のプロパティ]で、[名前]に適当な名前を入力し、[種類]リストから、[SQL Serverパフォーマンス条件警告]を選択します。[パフォーマンス条件警告定義]の[オブジェクト]リストで「SQLServer:Buffer Manager」、[カウンタ]リストで「Buffer cache hit ratio」、[警告カウンタ]の[値]に「70」をそれぞれセットします。
5.[応答]タブを選択します。[新規オペレータ]ボタンを使用し、適当なオペレータを登録し、警告で設定した閾値を超えたときに、メール送信が行われるよう[メール]チェックボックスを設定します。
次ページでは混合サーバ構成を取った場合のメモリチューニング、および物理メモリを予約する設定方法を解説します。(次ページに続く)
Copyright © ITmedia, Inc. All Rights Reserved.