SQL ServerはサーバーRAMの87.5%を消費しています。これは最近、速度低下などの多くのパフォーマンスのボトルネックを引き起こしました。この問題を調査しました。インターネットで見つけることができる一般的な解決策の1つは、SQL Serverの最大制限を設定することです。これが行われ、多くの改善が得られました。最大メモリ値が設定されていない場合、SQL Serverがリソースを消費し続ける理由を知りたい
SQL ServerはサーバーRAMの87.5%を消費しています。これは最近、速度低下などの多くのパフォーマンスのボトルネックを引き起こしました。この問題を調査しました。インターネットで見つけることができる一般的な解決策の1つは、SQL Serverの最大制限を設定することです。これが行われ、多くの改善が得られました。最大メモリ値が設定されていない場合、SQL Serverがリソースを消費し続ける理由を知りたい
回答:
SQL Serverは、許可するだけのメモリを消費します。デフォルトでは、その数値はマシンの数値メモリの100%を網羅します。それがあなたが見ているものを見ている理由です。SQL Serverに24 GBのメモリを割り当てた場合、SQL Serverは24 GBのメモリを最大限に使用します。次に、SQL ServerとOSがリソースを奪い合っているため、常にパフォーマンスが低下します。
あなたが設定するとmax server memory
、設定上限を、あなたは(それがデータページとプロシージャキャッシュを格納し、事実上)バッファー・プールに割り当てることができますどのくらいのSQL Serverの制限されています。SQL Serverには他のメモリ担当者がいるため、特定のバージョン(2008 R2以前)ではmax server memory
、バッファープールを制御するだけです。しかし、これは常に最大のメモリコンシューマーになります。
サーバーの最小および最大メモリの影響に関するTechNetリファレンス
最小サーバーメモリおよび最大サーバーメモリ構成オプションは、Microsoft SQL Serverデータベースエンジンのバッファープールで使用されるメモリ量の上限と下限を設定します。
OSのためにどれだけのメモリを残すべきかという質問に関しては、それは一般的に議論されている測定基準です。それは本当にすべて、主にサーバーで実行されている他のプロセスに依存します。それが真に専用のサーバーである場合(そして、それはほとんどありません)。私が見てみたい、少なくとも 4ギガバイトのOS用のメモリ(と、さらにビッグなハードウェアボックスの上を)。ただし、最も重要なのは、未使用のメモリの量を監視することです。寛大で、使用可能なメモリ(perfmonで監視可能)と未使用のメモリ(もちろん、これらのコーナーの状況では常に小さなバッファを常に残している)に気付いている場合は、SQL Serverにより多くのメモリを与えます。
SQL Serverは、デフォルトでサーバー上のすべてのメモリを使用するように設計されています。これは、SQL ServerがデータベースのデータをRAMにキャッシュするため、ユーザーが必要とするたびにディスクからデータを読み取る必要がある場合よりも速くデータにアクセスできるためです。SQL Serverが何度も同じデータを必要とするたびにディスクにアクセスする必要がある場合、ディスクIO要件は非常に高くなります。
通常、Windows用に4ギガバイトのRAMを残すことをお勧めしますが、それはサーバーで実行されているソフトウェアの量、使用しているSQL Serverのコンポーネント(すべてのコンポーネントがその設定に従うわけではありません)などによって異なります。
これは、SQLの再起動を必要とせずに即座に機能します。
2つのサーバーメモリオプション、min server memoryおよびmax server memoryを使用して、SQL ServerのインスタンスのSQL Server Memory Managerによって管理されるメモリ量(メガバイト単位)を再構成します。既定では、SQL Serverは使用可能なシステムリソースに基づいてメモリ要件を動的に変更できます。
一定量のメモリを設定する手順一定量のメモリを設定するには:
デフォルト設定を使用して、SQL Serverが使用可能なシステムリソースに基づいてメモリ要件を動的に変更できるようにします。最小サーバーメモリのデフォルト設定は0、最大サーバーメモリのデフォルト設定は2147483647メガバイト(MB)です。
これがお役に立てば幸いです!
エリックが言ったように、他のプロセスのために空き領域を確保するためにメモリを管理する必要があります。一般的な説明と最大メモリの設定方法に関するガイダンスについては、Jonathan Kehayiasの投稿を確認してください。
http://www.sqlskills.com/blogs/jonathan/how-much-memory-does-my-sql-server-actually-need/
サーバーの使用状況を考慮して推奨事項を変更できます。
SQL Serverは、使用量に上限を設けない限り、使用可能なRAMを使用します。原則として、OSに2GB以上の空き容量を残そうとします。つまり、ホストに64 GBの物理RAMがある場合、SQL Serverを62 GBに制限します。
http://msdn.microsoft.com/en-us/library/ms191144(v=sql.105).aspx