web-dev-qa-db-ja.com

SQL ServerがAWEメモリを使用するのはなぜですか?そしてなぜこれがRAMMapに表示されないのですか?

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つの質問があります:

  • RAMMapが、SQL ServerプロセスがそのAWEメモリの原因であることを知らない/示さないのはなぜですか?
  • SQL Server Management StudioでAWEメモリが使用されていないと表示されるのはなぜですか?
  • AWEメモリを実際に使用しないようにSQL Serverを構成するにはどうすればよいですか?

SQLサーバーアカウントに「メモリ内のページのロック」オプションはありますか?

簡単に言うと、1)この方法での割り当ては少し高速で、2)SQLがメモリをページアウトされないようにするために必要です。

SQLでAWEを使用したくない特定の理由はありますか?

リファレンス: http://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-530-awe-must-be-enabled-on-64-bit-サーバー/

  • 64ビットシステム(2005以降):
  • AWEは必要ありません(実際に有効にしても何も起こりません)
  • "Locked Pages in Memory"特権をオンにすると、バッファープールメモリ(および一度に1ページずつのメモリ割り当てを使用するもの)がページアウトされなくなります
  • "Locked Pages in Memory"特権が設定されている場合、SQL ServerはWindows AWE APIを使用してメモリ割り当てを行います。
  • "メモリ内のロックされたページ"は、スタンダードエディションとエンタープライズエディションでサポートされています(スタンダードエディションで有効にする方法については、このブログ投稿を参照してください)。

参照: ロックされたページ、AWE、タスクマネージャー、およびワーキングセットで楽しい… -これは、「use AWE」がfalseに設定されていても、実際にAWEの使用を妨げないわけではない(これは、 32ビット)

3
Mark Sowul