Windows Server 2003 上の SQL Server では、AWE メモリの動的割り当てがサポートされます。セットアップ中に SQL Server が確保する AWE マップ メモリの量はごくわずかです。さらに AWE マップ メモリが必要になった場合、オペレーティング システムは動的に SQL Server に割り当てます。同様に、必要なリソースが減少した場合、SQL Server は AWE マップ メモリをオペレーティング システムに返し、他のプロセスやアプリケーションが使用できるようにします。awe enabled 構成オプションの詳細については、「awe enabled オプション」を参照してください。
Windows Server 2003 ファミリからは、さらに多くの物理メモリがサポートされるようになりました。AWE が使用できる物理メモリは、使用するオペレーティング システムによって異なります。執筆時において、各 Windows Server 2003 オペレーティング システムで使用可能な最大物理メモリ量は次のとおりです。
-
Windows Server 2003 Standard Edition では、最大 4 GB の物理メモリがサポートされます。
-
Windows Server 2003 Enterprise Edition では、最大 32 GB の物理メモリがサポートされます。
-
Windows Server 2003 Datacenter Edition では、最大 64 GB の物理メモリがサポートされます。
メモリ オプションの構成
SQL Server が Windows Server 2003 オペレーティング システムのいずれかのエディションで実行されている場合は、AWE マップ メモリが動的に割り当てられます。つまり、バッファ プールが AWE マップ メモリを (min server memory オプションと max server memory オプションの制約の範囲内で) 動的に管理し、システム全体の要件に対して適切に SQL Server のメモリ使用量を調整できます。
AWE が有効な場合、SQL Server は常に可能な限り AWE マップ メモリのみを使用するようになります。これは、アプリケーションに 3 GB 未満のユーザー モード アドレス空間しか割り当てられていないコンピュータも含めて、すべてのメモリ構成に当てはまります。
-
Windows Server 2003 で実行される SQL Server では、既定のメモリ モードとして AWE を設定することをお勧めします。ホット アド メモリ機能を使用するには、SQL Server の起動時に AWE を有効にする必要があります。詳細については、「ホット アド メモリ」を参照してください。
メモ : |
|---|
|
AWE は 64 ビット オペレーティング システムには不要であり、構成できません。
|
-
AWE マップ メモリは、3 GB 未満でサポートされるので、min server memory と max server memory の値を物理メモリの範囲内で定義するか、どちらのオプションにも既定値を使用します。
-
SQL Server の max server memory の設定は、同じコンピュータで実行される他のアプリケーション用に予備のメモリを確保することを考慮して設定することをお勧めします。SQL Server は動的に AWE マップ メモリを解放できますが、現在割り当てられている AWE マップ メモリをページ ファイルにスワップ アウトすることはできません。
SQL Server のインスタンスで AWE を使用できるようにするには、sp_configure を使用して awe enabled オプションを 1 に設定し、SQL Server を再起動します。
min server memory と max server memory の詳細については、「サーバー メモリ オプション」を参照してください。
AWE を有効にする前に、Lock Pages in Memory ポリシーを構成する必要があります。詳細については、「Lock Pages in Memory オプションを有効にする方法 (Windows)」を参照してください。
例
次の例では、AWE をアクティブにし、min server memory を 1 GB に、max server memory を 6 GB に制限する手順を示しています。
まず、AWE を構成します。
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
SQL Server が再起動されると、「Address Windowing Extensions が有効です。」というメッセージが SQL Server エラー ログに書き込まれます。
次に、メモリを構成します。
sp_configure 'min server memory', 1024
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO
この例では、バッファ プールが 1 ~ 6 GB の間で動的に AWE マップ メモリを管理するように、メモリを設定しました。他のアプリケーションでさらに多くのメモリが必要になった場合、SQL Server は割り当てられている AWE マップ メモリから必要がなくなったメモリを解放できます。この例では、AWE マップ メモリは、最高で 1 GB までしか解放されません。
動的 AWE メモリの場合、ホット アド メモリをサポートするコンピュータにメモリが追加された場合に、SQL Server のメモリ量を増やすことができます。Windows Server 2003 の Enterprise Edition と Datacenter Edition で利用可能なホット アド メモリを使用すると、コンピュータが稼働中でもメモリを追加できます。たとえば、SQL Server を Windows Server 2003 Enterprise Edition で実行し、16 GB の物理メモリを搭載したコンピュータで起動するとします。オペレーティング システムは、アプリケーションが使用する仮想メモリ アドレス空間を 2 GB に制限するよう構成されていて、AWE が SQL Server でアクティブになっているとします。その後、システム管理者が、コンピュータの実行中に 16 GB のメモリを追加すると、SQL Server は直ちに追加されたメモリを認識し、必要に応じてこれを使用します。
AWE の使用方法の詳細については、Windows Server 2003 のマニュアルを参照してください。
AWE モードでの SQL Server の複数インスタンスの実行
SQL Server の複数のインスタンスを 1 台のコンピュータ上で実行していて、各インスタンスが AWE マップ メモリを使用する場合、各インスタンスが想定どおりに実行されるようにする必要があります。
サーバーで Windows Server 2003 が実行されている場合は、各インスタンスに min server memory の設定があります。Windows Server 2003 上で実行される SQL Server では、AWE マップ メモリの動的な管理がサポートされるため、インスタンスごとに min server memory オプションを設定することをお勧めします。AWE マップ メモリはページ ファイルにスワップ アウトできないので、すべてのインスタンスの min server memory 値の合計が、コンピュータの合計物理メモリ量未満になる必要があります。
min server memory オプションを指定しても、SQL Server は起動時に最小メモリ量を確保しません。メモリは、データベースのワークロードに応じて必要なだけ割り当てられます。ただし、いったん min server memory のしきい値に達すると、SQL Server に残されるメモリ量がこれよりも少なくなる場合は、SQL Server はメモリを解放しません。したがって、各インスタンスに少なくとも min server memory の値と同じ量のメモリが割り当てられるようにするには、サーバーが起動された直後にデータベース サーバーの読み込みを実行することをお勧めします。通常のサーバー利用状況では、インスタンスごとに使用可能なメモリ量は異なりますが、各インスタンスが使用できるメモリ量が min server memory の値を下回ることはありません。
max server memory を設定することも、既定の設定をそのまま使用することもできます。max server memory を既定値のままにすると、各 SQL Server インスタンスは互いに競ってメモリを確保しようとします。