SQL Server での AWE メモリの有効化
AWE (Address Windowing Extensions) は、32 ビット オペレーティング システムから大容量メモリへのアクセスを可能にします。AWE はオペレーティング システムによって公開され、Microsoft と で実装が若干異なります。AWE を有効化するには awe enabled オプション を使用します。
Windows 2000 Server での AWE マップ メモリの使用
上で実行される Microsoft SQL Server 2005 のインスタンスでは、次のイベント シーケンスに従って、SQL Server の起動時にメモリが割り当てられます。
- 使用可能な物理メモリが、ユーザー モードの仮想アドレス空間よりも少ない場合は、AWE をアクティブにできません。この場合は、awe enabled オプションの設定に関係なく、SQL Server は非 AWE モードで実行されます。
- 使用可能な物理メモリが、ユーザー モードの仮想アドレス空間よりも多い場合は、AWE をアクティブにできます。
- 使用可能な物理メモリが max server memory オプションの値よりも大きい場合は、SQL Server インスタンスにより max server memory で指定された量のメモリがロックされます。
- 使用可能な物理メモリが max server memory オプションの値よりも小さいか、max server memory オプションが設定されていない場合、SQL Server インスタンスでは 256 MB を除いてすべての使用可能なメモリがロックされます。
- AWE マップ メモリは、いったん割り当てられると、SQL Server がシャットダウンされるまで解放されません。
メモリ オプションの構成
AWE を有効にするたびに、max server memory の値を設定することを強くお勧めします。awe enabled が 1 に設定されており、かつ使用可能な物理メモリがユーザー モード プロセス空間よりも大きい場合、 上で実行される SQL Server 2005 のインスタンスでは、サーバーの起動時に使用可能なメモリの大部分 (max server memory オプションが設定されている場合はその値分のメモリ) がロックされます。max server memory が設定されていないと、他のアプリケーションや SQL Server のインスタンスが利用できる物理メモリは、128 MB 未満になります。
AWE マップ メモリ プールは、ページング システム ファイルにスワップ アウトできません。さらに物理メモリが必要になった場合、Windows は他のアプリケーションをスワップ アウトする必要が生じ、これらのアプリケーションのパフォーマンスが低下する可能性があります。
他のアプリケーションのパフォーマンスの低下を防ぐため、max server memory を構成して他のアプリケーションやオペレーティング システムのさまざまなニーズに対応できるよう、ある程度の空きメモリを確保します。SQL Server のインスタンスに問題なく割り当てできるメモリ量は、そのコンピュータで使用する他のすべてのアプリケーションを起動した後に使用可能なメモリ量を確認することで決定できます。
メモ : |
---|
の場合、SQL Server AWE に対しては min server memory は無視されます。 |
SQL Server のパフォーマンス モニタの Total Server Memory (KB) カウンタを使用して、AWE モードで実行されている SQL Server のインスタンスによって割り当てられたメモリ量を特定するか、sysperfinfo からメモリの使用量を選択します。
詳細については、「メモリ使用率の監視」を参照してください。
AWE モードでの SQL Server の複数インスタンスの実行
サーバーで が実行されている場合は、各インスタンスに max server memory の設定があります。 オペレーティング システム上で実行される SQL Server 2005 では、AWE マップ メモリの動的割り当てがサポートされていないため、インスタンスごとに max server memory オプションを設定することをお勧めします。
すべてのインスタンスの max server memory 値の合計は、コンピュータの合計物理メモリ量未満である必要があります。このオプション値の合計が、合計物理メモリ量よりも大きくなると、一部のインスタンスが起動されないか、max server memory の設定で指定されている量よりも少ないメモリにしかアクセスできません。たとえば、コンピュータの物理メモリ量が 16 GB であり、SQL Server 2005 のインスタンスが 3 つインストールされているとします。また、インスタンスごとに、max server memory が 8 GB に設定されているとします。3 つすべてのインスタンスを停止し、再起動した場合、メモリ割り当ては以下のようになります。
- 最初のインスタンスには、8 GB の物理メモリが割り当てられます。
- 2 番目のインスタンスは起動されますが、8 GB よりもやや少ない (最大でも 128 MB 少ない) 物理メモリが割り当てられます。
- 3 番目のインスタンスは動的メモリ モードで起動され、物理メモリは最大で 256 MB までしか使用できません。
詳細については、「大規模データベースのメモリ管理」を参照してください。
Windows Server 2003 での AWE マップ メモリの使用
上の SQL Server 2005 では、AWE メモリの動的割り当てがサポートされます。セットアップ中に SQL Server が確保する AWE マップ メモリの量はごくわずかです。さらに AWE マップ メモリが必要になった場合、オペレーティング システムは動的に SQL Server に割り当てます。同様に、必要なリソースが減少した場合、SQL Server は AWE マップ メモリをオペレーティング システムに返し、他のプロセスやアプリケーションが使用できるようにします。awe enabled 構成オプションの詳細については、「awe enabled オプション」を参照してください。
ファミリからは、さらに多くの物理メモリがサポートされるようになりました。AWE が使用できる物理メモリは、使用するオペレーティング システムによって異なります。執筆時において、各 オペレーティング システムで使用可能な最大物理メモリ量は次のとおりです。
- Standard Edition では、最大 4 GB の物理メモリがサポートされます。
- Enterprise Edition では、最大 32 GB の物理メモリがサポートされます。
- Datacenter Edition では、最大 64 GB の物理メモリがサポートされます。
メモリ オプションの構成
SQL Server 2005 が オペレーティング システムのいずれかのエディションで実行されている場合は、AWE マップ メモリが動的に割り当てられます。つまり、バッファ プールが AWE マップ メモリを (min server memory オプションと max server memory オプションの制約の範囲内で) 動的に管理し、システム全体の要件に対して適切に SQL Server のメモリ使用量を調整できます。
AWE が有効な場合、SQL Server 2005 は常に可能な限り AWE マップ メモリのみを使用するようになります。これは、アプリケーションに 3 GB 未満のユーザー モード アドレス空間しか割り当てられていないコンピュータも含めて、すべてのメモリ構成に当てはまります。
- で実行される SQL Server 2005 では、既定のメモリ モードとして 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 2005 のインスタンスで 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 のメモリ量を増やすことができます。 の Enterprise Edition と Datacenter Edition で利用可能なホット アド メモリを使用すると、コンピュータが稼働中でもメモリを追加できます。たとえば、SQL Server 2005 を Enterprise Edition で実行し、16 GB の物理メモリを搭載したコンピュータで起動するとします。オペレーティング システムは、アプリケーションが使用する仮想メモリ アドレス空間を 2 GB に制限するよう構成されていて、AWE が SQL Server でアクティブになっているとします。その後、システム管理者が、コンピュータの実行中に 16 GB のメモリを追加すると、SQL Server 2005 は直ちに追加されたメモリを認識し、必要に応じてこれを使用します。
AWE の使用方法の詳細については、 のマニュアルを参照してください。
AWE モードでの SQL Server の複数インスタンスの実行
SQL Server 2005 の複数のインスタンスを 1 台のコンピュータ上で実行していて、各インスタンスが AWE マップ メモリを使用する場合、各インスタンスが想定どおりに実行されるようにする必要があります。
サーバーで が実行されている場合は、各インスタンスに min server memory の設定があります。 上で実行される SQL Server 2005 では、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 インスタンスは互いに競ってメモリを確保しようとします。
フェールオーバー クラスタリングと AWE の併用
SQL Server 2005 のフェールオーバー クラスタリングと AWE メモリを併用する場合は、すべてのインスタンスの max server memory 設定の合計値が、フェールオーバー クラスタ内の各サーバーの使用可能な物理メモリの最小サイズ未満であることを確認します。フェールオーバー先のノードの物理メモリ量がフェールオーバー前のノードよりも少ない場合、その SQL Server 2005 のインスタンスは起動に失敗するか、元のノードよりも少ないメモリで起動される可能性があります。
参照
処理手順
awe enabled オプションを構成する方法 (SQL Server Management Studio)
概念
AWE の使用
大規模データベースのメモリ管理
メモリ アーキテクチャ