web-dev-qa-db-ja.com

SQL Serverの最大メモリ設定

SQL Server 2008とWebベースのアプリケーションを、2 GBのメモリしか利用できない単一の専用サーバーで実行しています。

他の場所で説明されているように、SQL Serverは通常、最大98%の物理メモリを使用します。これは、サーバーで実行されているWebアプリケーションの速度を低下させるようです。

SSMSの[サーバーのプロパティ]の[メモリ]で、[最大サーバーメモリ(MB)]が2147483647に設定されている Sql Server

私の質問は、利用可能なメモリの量を考えると、同じサーバーがWebアプリケーションも実行していることを考えると、サーバーの最大メモリボックスに入れる推奨数は何ですか?

さらに、SQL Serverの実行中にこの数を変更しても安全ですか?

アドバイスありがとうございます。

11
fixit

私は最後の質問に最初に答えます:はい、サーバーが問題なく稼働している間に変更できます。 SQL経由で値を変更したい場合は、次のクエリで実行できます。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO

SQLサーバーでのメモリ設定の詳細については、 このページ を参照してください。


あなたの最初の質問、残念ながら答えは:私はあなたに言うことができません、私はそこにいません

メモリを割り当てるときに考慮する必要がある1,000,000の事柄があります。クエリの結果セットの大きさ、クエリの実行頻度はどれくらいですか?20ミリ秒かかっていたクエリで200ミリ秒かかっても大丈夫ですか?

Sqlのデフォルトでは、それがサーバー上で実行されている唯一のものであると想定しているため、メモリをMAX_VALUEに設定するだけで、利用可能なすべてのメモリが使用されているとき(そして、発生したいものにかなり近い専用ハードウェア上で)成長を停止します( アーロンズのコメント 可能な警告)))。通常、データベースと対話するWebサーバーまたはその他のソフトウェアは、ネットワークを介して通信する別のハードウェア上にあります。

あなたは本当にそれをあなたが正気だと思う値に設定する必要があるだけです、そしてあなたのウェブサーバーがまだメモリが詰まっているならそれを下げてください。 Webサーバーに必要なメモリを割り当てた後、SQLで十分なパフォーマンスが得られない場合は、RAMを追加購入するか、SQLを専用ハードウェアに移動する必要があります。

13

SQLサーバーがボックスのすべてのメモリを使用することを許可してはいけません。それは、そのボックスで実行されているものとボックスのメモリ量に依存しますが、常にメモリの10%をOに残すことを保証します。\S。

1
Trish Walker

私が雇われている現在の会社では、常にSQL Serverの最小設定と最大設定を使用しています。サーバーがSQL Serverにのみ使用されている場合、最大値は常にMAXメモリに設定されます-OSの場合は1GB。私たちの場合の最小値は2GBです。

しかし、それは私たちのインストールで証明されています。すべてのインストールと使用法が同じというわけではありませんが、メモリは常にあなたが望むことをしていないと私はまだ感じています;)

あなたの場合は既知のことかもしれませんが、メモリの交換も確認してください。サーバーに2GBしかなく、OSとSQL Serverが「高負荷」で実行されている場合、メモリ消費量が多すぎて、OSがスワッピングを行う傾向があります。ページングファイルがOSドライブ上にないことを確認してください。そうしないと、システムが完全に妨害されてしまう可能性があります(以前に存在していて、気に入らなかった)。

0
Mark Kremers