[SQL Server] 最大サーバーメモリ(Max Server Memory)を設定しよう

min server memory および max server memory 構成オプションは、Microsoft SQL Server データベースエンジンのバッファ プールが使用するメモリ容量の上限と下限を設定します。バッファ プールは、min server memory に指定されたメモリ容量をすぐには獲得しません。バッファ プールは、初期化に必要なメモリのみで起動します。データベースエンジンのワークロードが増えるにしたがって、そのワークロードに対応するために必要なメモリを獲得し続けます。バッファ プールは、min server memory で指定されたメモリ容量に達するまでは獲得したメモリを解放しません。メモリ容量が min server memory に達すると、バッファ プールは標準アルゴリズムを使用して、必要に応じてメモリ容量を獲得または解放します。唯一の違いは、バッファ プールはそのメモリ割り当てを min server memory の値より少ないメモリ容量にはせず、max server memory の値より多いメモリ容量は獲得しないということです。



メモリを設定しない場合、負荷が多いシステムでは色んなI/Oが遅速的に発生し続くとSQL SERVERは必要なメモリを獲得し続けます。これはOS及び他アプリケーションに影響を与えます。

バッファ プールメモリが不足な場合、DISK I/Oの発生によりクエリを実行するのに必要な最小メモリを選らずリソースを待機する間エラーが発生する可能もある。

こういう症状はクエリの応答時間が遅くなる原因となり全般的なシステムの性能にも影響を与えることになる。



さって、MAX SERVER MEMORY(最大サーバーメモリ)を設定する時にどのぐらい設定すればいい?

サーバーの物理メモリの約80%で設定すればいいと思う。



物理メモリ X 0.8 = MAX SERVER MEMORY

Ex) 物理メモリが16GBの場合、

16000 X 0.8 = 12800



12800をMAX SERVER MEMORYで設定しよう。



それでは、MIN/MAX SERVER MEMORYを設定する方法について説明しよう。

設定する方法は2つがある。

SQLクエリで設定とManagement Studioから設定する方法だ。



SQLクエリで設定する方法



sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO



sp_configure 'max server memory', 12800;

GO

RECONFIGURE;

GO



Management Studioから設定する方法

1.Microsoft SQL Server Management Studioを実行する。

2.サーバーのプロパティを開く。





3.「メモリ」ページからMIN/MAX SERVER MEMORY(最小・最大サーバーメモリ)を設定する。単位はMBだ。



4.設定が終わったら「OK」ボタンをクリックする。これで終了!



設定後サーバーへの反映は再起動しなくてもすぐ反映される。



参考資料

最小および最大サーバー メモリの効果 : http://technet.microsoft.com/ja-jp/library/ms180797.aspx
Previous
Next Post »