この特集のトップページへ

9.10.2 メモリのチューニング

 Windows NTおよびSQL Serverで重要なハードウェアリソースといえるのがメモリである。ここ数年,メモリの低価格化と高性能化が進み,サーバーやワークステーションに搭載可能なメモリ容量は飛躍的に増大している。Windows NT 4.0の場合,最大4Gバイトの仮想メモリ空間を管理でき,そのうち最大2Gバイトまでをユーザー空間として利用できる*1
 物理メモリは重要なハードウェアリソースであり,性能面から見ると物理メモリの積載量は多ければ多いほど好ましい。もし十分な物理メモリが搭載されていなければ,どれほど高機能なプロセッサを利用していたとしても,サーバー本来の性能は引き出せないはずである。筆者はSQL Server Desktop Editionを除いて,1プロセッサあたり256Mバイト以上の物理メモリを搭載することを勧める。最低でも128Mバイトは実装すべきである。

メモリの監視オブジェクトとカウンタ

 SQL ServerはWindows NTプロセスの1つである。メモリマネージャによってWindows NTプロセスに割り当てられるページ(Intel社のプロセッサを使用している場合は4Kバイト)はワーキングセットと呼ばれ,プロセスが使用しているコード部分とデータ部分を保持している。SQL Serverに割り当てられるメモリ容量は,同じサーバー上で動作するほかのプロセスの要求条件によって異なる。SQL Server 7.0は,デフォルトで使用するメモリ領域を自動的に構成および調整するようになっている。したがって,システム管理者がSQL Serverにどれだけのメモリ領域を割り当てるかで頭を悩ませる必要は基本的にない。
 しかし,ほかのアプリケーションに最低限のメモリを確保できるように,SQL Serverの利用できるメモリサイズを制限したいのであれば,[SQL Serverのプロパティ]ダイアログボックスで[メモリ]パネル(Fig.9-61参照)を開き,[固定メモリサイズを使用(MB)]を選択して必要なメモリ領域を設定すればよい。デフォルトである[SQL Serverメモリの動的設定]を選択している場合でも,[最小(MB)]および[最大(MB)]のメモリ領域を設定し,割り当て可能なメモリ領域の範囲を限定することができる。[SQL Serverメモリの動的設定]を選択した場合には[最小(MB)]および[最大(MB)]として設定した値の善し悪しを,[固定メモリサイズを使用(MB)]を選択した場合には指定した値の善し悪しを,それぞれ決定するため,次のようなカウンタ値を監視する必要がある。

○Memory:Available Bytes
 このカウンタは,利用可能な仮想メモリのサイズを示す。詳しくいうと,Zeroed(ゼロでクリアされた),Free(解放された,マッピングされていない,削除された),Standby(プロセスのワ−キングセットからは削除されたが依然として利用可能)という各状態にあるページフレームの総バイト数である。通常は,Used→Modified/ModifiedNoWrite→Standby→Free→Zeroedという状態遷移を示す。
 このカウンタの値が4Mバイト以下になるようであれば,仮想メモリの使用が頻繁に発生している可能性がある。SQL Serverは,仮想メモリに5Mバイトの余剰を残すように自動調整する。したがって,もしこのカウンタの値が4Mバイト以下になるようであれば,メモリリークを疑う必要があるだろう。あるいは,自動調整オプションが無効に設定されている可能性もあるので,確認してみるとよい。

○Memory:Committed Bytes
 実際にコミットされた仮想メモリのバイト数を示す。コミットされたメモリとは,ディスク領域(ページファイル)が存在するか,あるいはページファイルをまったく使用しないことが保証されている(十分な容量の物理メモリが搭載されている)状態を表す。コミットされたメモリに相当する空き領域が物理メモリ上に存在しなければ,システムは物理メモリとディスクとのあいだでスラッシング*2を生じるおそれがある。特に,このカウンタの値が物理メモリの2倍以上を定常的に満たすようであれば,物理メモリが不足しているので,物理メモリを追加する。


  1. Windows NT 4.0 Enterprise Editionは,最大3Gバイトのユーザー空間を利用できる。また,SQL Server 7.0 Enterprise Editionも,SQL Serverのアプリケーション空間として最大3Gバイトを利用可能である。
  2. 過度のスワッピングで,メモリとディスクとのあいだでデータを転送するだけで,それ以外は何もできなくなる状態。ストールしているように見える。
前へ Chapter 9 38/46 次へ