none
WindowsServer2008R2Std.64bit版 + SQLServer2005Std.32bit版 におけるメモリ使用量の調整について RRS feed

  • 質問

  • いつもありがとうございます。

    さて、この度下記環境で、SQLServerのメモリ不足に対応するため、DBサーバのメモリを4GBから32GBに増設しました。

    ・OS:WindowsServer2008R2Std.64bit版
    ・DB:SQLServer2005Std.32bit版

    メモリ増設後のSQLServerのメモリに関するプロパティ値は下記の通りです。

    ・AWEを使用してメモリを割り当てる:OFF (規定値のまま)
    ・最小サーバーメモリ:0MB (規定値のまま)
    ・最大サーバーメモリ:2,147,483,647MB (規定値のまま)

    OSが64bitなので、上記プロパティ値であれば、増設されたメモリをSQLServerが最大限使用する、と想定していました。
    ところが、Windowsのタスクマネージャーでメモリ使用量を確認すると、6GB程度しか使用しておらず、25GBが空いた状態になっています。

    もしかしたらこれは、「OSが64bitであっても、SQLServerが32bitであるため」、なのかもしれません。

    この場合、何を設定すればSQLServerは増設メモリを使用してくれるようになるのでしょうか?

    色々調べたのですが判りませんでした。どうぞよろしくお願いいたします。



    2012年3月19日 2:30

回答

すべての返信

  • WOW64での動作なのですね。
    だとすると、ご認識の通り「OSが64bitであっても、SQLServerが32bitであるため」です。
    AWEを有効にしなければ4GB以上のメモリを利用してくれません。
    SQL Server x64製品であれば現在の設定でも可能な限りメモリを使うようになります。

    http://msdn.microsoft.com/ja-jp/library/ms190673%28v=sql.90%29.aspx

    • 回答としてマーク 梅埜 顕 2012年3月22日 3:34
    2012年3月19日 5:05
    モデレータ
  • ElanLilacさん、お返事有難うございます。

    あぁやっぱり、AWEを有効にする必要があるのですね。

    AWE有効化のためには、SQLServerのインスタンスを再起動しないといけないようですので、
    折をみて設定してみたいと思います。

    アドバイスありがとうございました!

    2012年3月19日 7:02
  • ElanLilacさんにご回答いただき、AWEの有効化が必要だということは判りました。

    さて、さらに調べるとAWE有効化の際、以下が必要になるということが書かれていました。
    「ローカル セキュリティ ポリシーで、[メモリ内のページのロック] という権限を SQL Server のサービス起動アカウントに付与する必要があります。」

    これは32bitOSについての記事なのですが、64bitOSでWOW64で動作しているSQLServerにおいても、同様に必要なのでしょうか。

    ご存知でしたらアドバイスいただけますと幸いです。

    2012年3月22日 2:02
  • AWEを有効にするためにはメモリ内のページロック権限が必要となります。

    • 回答としてマーク 梅埜 顕 2012年3月22日 3:34
    2012年3月22日 2:32
    モデレータ
  • ElanLilacさん、いつもお返事有難うございます!

    やはりそういうことなのですね。

    ありがとうございました!

    2012年3月22日 3:34