Windows Server 2008 R2(64ビット)8GBサーバーがあり、Sysinternals RAMMap によると、AWEを使用して2GBのメモリが割り当てられています。私が理解している限り、これはこれらのページが物理メモリにとどまり、決して押し出されないことを意味します。これにより、他のアプリが物理メモリから押し出されます。
RAMMapの[Physical Pages]タブでは、すべてのAWEページの[Process]列が空です。
そのボックスでSQL Serverを実行しますが、(SQL Server Management Studioの[サーバーのプロパティ]-> [メモリ]の[サーバーのメモリオプション]で)AWEを使用しないように構成されていると表示されます。
ただし、SQL Serverを停止すると、AWEページが突然なくなります。だからそれは本当に犯人です。
だから私は3つの質問があります:
SQLサーバーアカウントに「メモリ内のページのロック」オプションはありますか?
簡単に言うと、1)この方法での割り当ては少し高速で、2)SQLがメモリをページアウトされないようにするために必要です。
SQLでAWEを使用したくない特定の理由はありますか?
- 64ビットシステム(2005以降):
- AWEは必要ありません(実際に有効にしても何も起こりません)
- "Locked Pages in Memory"特権をオンにすると、バッファープールメモリ(および一度に1ページずつのメモリ割り当てを使用するもの)がページアウトされなくなります
- "Locked Pages in Memory"特権が設定されている場合、SQL ServerはWindows AWE APIを使用してメモリ割り当てを行います。
- "メモリ内のロックされたページ"は、スタンダードエディションとエンタープライズエディションでサポートされています(スタンダードエディションで有効にする方法については、このブログ投稿を参照してください)。
参照: ロックされたページ、AWE、タスクマネージャー、およびワーキングセットで楽しい… -これは、「use AWE」がfalseに設定されていても、実際にAWEの使用を妨げないわけではない(これは、 32ビット)