こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL Serverで使用されるメモリについて

お世話になります。
Windows Server2012 Standard
SQL Server2008 R2 Standard

当該サーバー機のスペックは
CPU:Intel Xeon E5-2403 1.80GHz
メモリ:8GB
です。

タスクマネージャーで使用メモリを確認したところ、常にSQL Server
だけで3.8GB程使われており、トータルでは5.3GBとなっておりました。
※67~8%が常に使われている状況。

SQL2008のシステム要件を見てみると、最小で1GB以上、推奨は
4GB以上となっております。

<質問>
SQLで使用されるメモリサイズは、積んでるメモリサイズによって
変わるのでしょうか。
例えば、元々4GBしか積んでなければ、SQLでは2GBぐらい使われるとか。

今回、サーバーにてパフォーマンス監視をすることとなり、社内規定で
メモリは「1時間の平均で60%を超えたら警告」となっております。
ですが、現状は常に67~8%なので既に超えている状況です。

調べたところ以下のような情報がありました。
https://support.microsoft.com/en-us/kb/321363/ja?wa=wsignin1.0
オプションで使用メモリの上限値を設定できるようなので、ここで設定する
ことにより、60%未満に抑えられそうなのですが、できればメモリは制限せずに
使えるだけ使いたいところです。


ご教示の程、宜しくお願い致します。

投稿日時 - 2015-06-01 17:32:49

QNo.8986387

困ってます

質問者が選んだベストアンサー

>SQL Server2008 R2 Standard

引用先の情報は SQL Server 2008は該当しませんね。
まぁ設定方法は同じでしょうけれど。

SQL Server2008ではOSが32bitの場合であっても
AWE (Address Windowing Extensions) がサポートされているので 4GB を超える物理メモリを使用できます。

さて、Mircosoft SQL Serverは最大サーバメモリを絞ってないと、すぐに実メモリを食いつぶしてしまうようです。
主にDBのキャッシュとして使われますがこれは基本的に開放されることは無く、空きメモリがほとんど無い状態となってします。

マイクロソフト側はこれに関して、「空きメモリが減ってもDBサーバとしての性能に影響はない」と言っています。
確かに「DBサーバ」には影響が無いように見えますが、他の動作にかなり影響します。
例えばメンテナンスでRAIDユーティリティを動かしたり、リモートメンテナンス時のアクセスがかなり緩慢になりますね。

一時的にSQLの仕様メモリを開放する方法です。
「オブジェクトエクスプローラー「を右クリックし、プロパティを選択します。

「ページの選択」から「メモリ」を選び、「最大サーバーメモリ」のサイズを変更します。
メモリ量を設定したら「OK」をクリックして完了です。

で、最後に質問の回答
>SQLで使用されるメモリサイズは、積んでるメモリサイズによって変わるのでしょうか。

最大サーバーメモリーサイズを設定していない(デフォルト)の場合、搭載メモリサイズによって変わります。
利用可能なメモリサイズの空容量が10MBから4MBになるまでどんどん使用してしまいます。

投稿日時 - 2015-06-02 09:42:12

補足

foitecさま
ご回答ありがとうございます。

>引用先の情報は SQL Server 2008は該当しませんね。
失礼しました。よくよく見たら2000と2005の情報でした。

>一時的にSQLの仕様メモリを開放する方法です。
についてですが、現状SQL Serverだけで3.8GBのメモリが使用
されている状態なのですが、この状態で「最大サーバーメモリ」を
仮に3GBに変更した場合、このタイミングで0.8GBが解放されると
いうことでしょうか。

SQL以外では約1.5GBメモリを食っているようです。
通常のメモリ使用量(SQL、その他含め)を全体の60%未満(約4.74GB未満)
にしたいので「最大サーバーメモリ」を3GBにしたいと考えているのですが、
現状3.8GB使用されているメモリを3GBに変更することによって
SQLの使用感というかレスポンスが大きく変わってしまうって
ことはあるのでしょうか。

度々の質問すみません。

宜しくお願い致します。

投稿日時 - 2015-06-02 10:57:13

お礼

foitecさま

早速試してみました。
とりあえず、「最大サーバーメモリ」を2GBに変更してみました。
変更後、しばらくは(使用されていた3.8GBが2GBまで下がるまで)
負荷がかかっていたようで、その間はSQLへのアクセス等が重くなりましたが
2GBに落ち着いたら、変更前とそれほど変わりませんでした。

その後、3GBに変更したので、少しずつ食い潰していって
数日後には上限3GBで落ち着くんだと思います。

色々勉強になりました。
ありがとうございました。

投稿日時 - 2015-06-03 09:37:52

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-
-広告-
-広告-