SQL Server 2005 のメモリ管理 [DBMS]
SQL Server 2005 のメモリ管理ってどうなってるの? という話です。
32bit で AWE を使用すると、タスクマネージャで見れるメモリと実際に確保されてる量が違います。
というより、AWE で使用しているメモリが管理方法が普通のメモリ管理とは違うからでしょうが、タスクマネージャでは見えません。
トータルの空きメモリを見れば確実に減っているのは確認出来ますが、プログラム単体として確保されてる量が正確には分かりません。
でも、64bit であれば、そんな凝った手法でなくても大容量のメモリを確保できるはずなので、タスクマネージャからも普通に観測出来ると思ったのですが…
まずは、SQL Server 2005 SP2 です。画面じゃわかりませんが、64bit です。
で、メモリの設定を 4GB~6GB にしました。64bit なので AWE は外してます。
この状態で しばらく使用して、タスクマネージャで sqlserver.exe を見ると↓のような状態です。(ああ、ここで 32bit でない事が分かりますね)
他のアプリに負けて SQL Server がメモリを掴めないのかと思ってしまいました。
(4GB~6GB に設定しても起動直後は必要最低限しか確保しませんのでしばらく使ってます)
しかし、パフォーマンスモニタとかで、SQL Server の Total Server Memory を見てみると、約4.5GB ほど使用しているのが確認出来ます。
もう少しSQL Server を使った状態が冒頭の画面です。↓これです。カウンタももう1つ追加してます。
SQL Server の Total Server Memory は 約6GB に達しています。
Avaiable MBytes はサーバの利用可能メモリで、こちらは順当に減って、約2GB にまで減ってます。(このサーバは全部で10GBあります。残り約2GBは別のアプリが使ってます。)
でも、タスクマネージャでは、わずか72MB になってます。
SQL Server は他のアプリとはメモリの確保の仕方が何か違うみたいです。
…でも、分かり難い。
図説入りでとても分かりやすかったです、有益な情報提供ありがとうございます。
by moto0215 (2007-07-02 15:28)
moto0215 さんコメントありがとうございます。
タスクマネージャも万能でない。鵜呑みにしてはいけない…という事かな?
というより、タスクマネージャが十分でないという事か。
VistaやWindows Server 2008 ではどうなるのかちょっと気になります。
by aki-aoki (2007-07-03 00:44)