AWEについて †
AWE(Address Windowing Extensions)とは †
2Gbytes(もしくは3Gbytes)のユーザーメモリ空間だけでは扱えないような巨大な物理メモリを直接利用するためのAPI。
AWEは、巨大な物理メモリの一部をユーザーメモリ空間中のウィンドウにマッピングさせて利用する機能であり(MS-DOS当時のEMSメモリなどと同じ考え方)、NT 4.0 サービスパック3以降で利用可能である。
PAEと組み合わせることにより、Windows 2000 Advanced Serverでは、より巨大なアプリケーションを動作させやすくなる。
AWE が使用できる物理メモリ †
- Windows Server 2003 Standard Edition では、では、最大 4 GB の物理メモリがサポートされます。
- Windows Server 2003 Enterprise Edition では、最大 32 GB の物理メモリがサポートされます。
- Windows Server 2003 Datacenter Edition では、最大 64 GB の物理メモリがサポートされます。
SQL Server 2000でAWEを利用するための前提条件 †
- AWE は 64bitOSには不要であり、使用できません
- 32bitOSで4GB以上のメモリを使用したい場合はPAEが有効になっている必要があります
- SQL Server 2000がEnterprise Edition もしくは Developer Editionである事
- lock pages in memory 特権が割り当てられているアカウントでデータベースエンジンが実行されている
- SQL Server 2000 SP4が適用されている場合は、#474343のBUG FIXを適用する
AWEを有効にする前に考えなければならない事 †
Windows 2000 および Windows Server 2003 ではどちらも、AWE メモリをページ ファイルにスワップ アウトすることはできません。
したがって、コンピュータ上で使用される他のすべてのアプリケーションの起動後に、使用可能なメモリ量を特定することによって、SQL Server のインスタンスに安全に割り当てることができるメモリ量を判断する必要があります。
システム モニタの SQL Server の Total Server Memory (KB) カウンタを使用して、AWE モードで実行されている SQL Server のインスタンスに割り当てられているメモリ量を特定します。max server memory オプションを構成するときは、他のアプリケーションや Windows 2000 および Windows Server 2003 に必要なメモリをある程度残すようにします。
SQL Server 2000でAWEを有効にする手順 †
lock pages in memoryを有効にする †
lock pages in memoryとは? †
プロセスを使用して物理メモリにデータを保持できるアカウントを指定し、ディスク上の仮想メモリへのデータのページングを防止します。
このオプションは、既定で無効になっています。
lock pages in memoryオプションを有効にするには †
※ 重要
32bitOSではAWEを使用しないでこのオプションを有効にすると、システムのパフォーマンスが大きく低下する可能性があります。
64bitOSでは、この設定は必要はありません。
- [スタート] メニューの [ファイル名を指定して実行] をクリックします。[名前] ボックスに「gpedit.msc」と入力します。
- [グループ ポリシー] ダイアログ ボックスが開きます。
- [グループ ポリシー] コンソールで [コンピュータの構成] を展開し、次に [Windows の設定] を展開します。
- [セキュリティの設定] を展開し、[ローカル ポリシー] を展開します。
- [ユーザー権利の割り当て] フォルダをクリックします。
- ポリシーが詳細ペインに表示されます。
- 詳細ペインで、[メモリ内のページのロック] をダブルクリックします。
- [ローカル セキュリティ ポリシーの設定] ダイアログ ボックスで、[追加] をクリックします。
- [ユーザーまたはグループの選択] ダイアログ ボックスで、sqlservr.exe の実行権限のあるアカウントを追加します。
SQL Server 2000 SP4 でAWEを使用する際にはパッチを当てる †
- 以下の条件を満たすとき、SQL Serverではコンピュータの物理メモリの 50% までしか使用できなくなります。
- x86 または x64 ベースのコンピュータ
- 32bit版の SQL Server 2000 Service Pack 4である
ビルド番号 | サービスパック |
8.00.194 または 2000.80.194.0 | 初期状態 |
8.00.384 または 2000.80.384.0 | SP1 |
8.00.534 または 2000.80.534.0 | SP2 |
8.00.760.03 または 2000.80.760.03 | SP3 |
8.00.760.09 または 2000.80.760.09 | SP3a |
8.00.2039たは 2000.80.2039 | SP4 |
8.00.2039より大きい番号 | SP4以降の各パッチを当てている |
- 2GBを超える RAM が搭載されている
- AWEを使用しmax server memory (MB) が物理メモリの50%以上である
SQL Server 2000でAWEオプションを有効にする †
- AWE を有効にして max server memory オプションに 6 GB の制限を設定するとした手順です
- 以下のクエリを実行する
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
- SQL Server のサービスを再起動する
- 以下のクエリを実行する
sp_configure 'min server memory', 6144
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO
- SQL Serverを再起動して下さい
- Address Windowing Extensions が有効です。 というメッセージが、SQL Server のログに書き込まれますので確認して下さい
- Address Windowing Extensions enabled.という英語表記かもしれません
- イベントログには残っていないので注意する事。必ず、EnterpriseManagerのSQL ログから確認する
AWEの確認 †
タスク マネージャでは、AWE について正確なメモリ使用状況は提供されません。
したがって、タスクマネージャのsqlservr.exe に対するメモリ量は正しくありません。
SQL Server の正確なメモリ使用量を取得するには、
- システム モニタを通じてアクティブ化される Total Server Memory (KB) パフォーマンス カウンタを使用する
- sysperfinfo のTotalServerMemory等を参照する
と言った形で確認する必要があります。
参考リンク †