SQL Serverのメモリ管理 [SQL Server]
SQL Serverはメモリ上限を決めておかないと、とれるだけメモリを確保しようとします。
キャッシュが大きいほど効率が増加するのでRDBMSとしては正しい動きです。
しかし、時として物理メモリの不足を発生させ、OSの動作や他のプログラムの動作を
阻害することがあります。
そのため、SQL Serverではmax server memoryというパラメータで上限を設定できます。
通常であればSQL Serverに使わせたいメモリは物理メモリサイズ以下だと思いますので、
データベース専用機であればOSに3GB程度残して、残りをmax server memoryに設定すると
管理上はそれなりに良い設定だと思います。もちろんIISが同居していたり、他のミドルウェアが
同居するような構成の場合はそれらの確保するメモリについても考慮してください。
http://msdn.microsoft.com/ja-jp/library/ms178067.aspx
さらに。
SQL Serverが確保しているワーキングセットがページアウトされてしまうとパフォーマンスが
劇的に悪化するので、ページアウトさせない設定をしておくと良いです。
具体的にはSQL Serverの起動アカウントにLock Page in Memory権限を与えます。
64bit環境ではこの設定は考慮に入れるべきです。また32bitではAWEを使うときは必須です。
http://support.microsoft.com/kb/918483
max server memoryとLock Page in Memoryはセットで使いましょう。
キャッシュが大きいほど効率が増加するのでRDBMSとしては正しい動きです。
しかし、時として物理メモリの不足を発生させ、OSの動作や他のプログラムの動作を
阻害することがあります。
そのため、SQL Serverではmax server memoryというパラメータで上限を設定できます。
通常であればSQL Serverに使わせたいメモリは物理メモリサイズ以下だと思いますので、
データベース専用機であればOSに3GB程度残して、残りをmax server memoryに設定すると
管理上はそれなりに良い設定だと思います。もちろんIISが同居していたり、他のミドルウェアが
同居するような構成の場合はそれらの確保するメモリについても考慮してください。
http://msdn.microsoft.com/ja-jp/library/ms178067.aspx
さらに。
SQL Serverが確保しているワーキングセットがページアウトされてしまうとパフォーマンスが
劇的に悪化するので、ページアウトさせない設定をしておくと良いです。
具体的にはSQL Serverの起動アカウントにLock Page in Memory権限を与えます。
64bit環境ではこの設定は考慮に入れるべきです。また32bitではAWEを使うときは必須です。
http://support.microsoft.com/kb/918483
max server memoryとLock Page in Memoryはセットで使いましょう。
コメント 0