web-dev-qa-db-ja.com

SQL Server最小サーバーメモリ

64 GBのRAMを搭載したサーバーでSQL 2008 R2 SP2を使用する。 SQL Serverがデータベースエンジン関連のサービスのみに限定されていることを考慮して、最大サーバーメモリを58GBに設定しました。最小サーバーメモリの設定に関する質問

サーバーの最小メモリを48 GBに設定すると、

a)Windowsがメモリ不足の通知をSQLに送信した場合-SQLサーバーはすべてのプールをトリムし、メモリ使用量を最大48 GBに維持しようとしますか?

b)Windowsによる積極的なワーキングセットのトリミングの場合-SQLサーバーのメモリ使用量を48 GBのままにして、SQLのメモリ使用量の「フロア」を設定します。

c)最小サーバーメモリに関する推奨事項はありますか?

Webの検索-インターネットには最大サーバーメモリに関する情報はたくさんありますが、私が読んだ場所はほんのわずかです(構成のベストプラクティスについてはBrent Ozarブログ)。最小サーバーメモリを使用可能な合計の50%に設定していますRAM=サーバー上。

6
SQL Learner

MIN ServerのメモリをDEFAULTのままにしておくことをお勧めします。

最小サーバーメモリは、SQLサーバーがコミットを維持しようとする物理メモリの最小量を制御します。 SQL Serverサービスが開始されると、最小サーバーメモリで構成されているすべてのメモリが取得されるのではなく、必要最小限のサイズで開始され、必要に応じて拡張されます。メモリ使用量が最小サーバーメモリ設定を超えて増加すると、SQL Serverはその量以下のメモリを解放しません。

Bob Dorr は、この設定を次のように説明しています。

最小サーバーメモリ

最小サーバーメモリ設定は注意して使用してください。これはSQL Serverのフロアです。最小サーバーメモリ設定に達するためにメモリをコミットすると、SQL Serverはマークより下のメモリを解放しません。最大サーバーメモリを59GBに、最小サーバーメモリを56GBに設定したが、サーバーがSQL Serverを53GBに戻す必要がある場合、SQL Serverは56GBを下回ることはありません。この設定をメモリ内のロックされたページと組み合わせると、メモリをページングできません。これにより、望ましくないパフォーマンス動作や割り当てエラーが発生する可能性があります。

-

Webの検索-インターネットには、サーバーの最大メモリに関する多くの情報があります

これは、この設定が最も調整されていないため(人々は単にデフォルトに設定しているだけです)、代わりに最大メモリがバッファプールの「天井」であるため、一般に調整されているメモリです。最大メモリの適切な値は、サーバーで実行されているウィンドウや他のプロセスが、SQLサーバーにtrimを強制せずに作業を実行するのに十分な物理メモリを確保できるようにします。

4
Kin Shah

「メモリ不足の通知」と「ワーキングセットの積極的なトリミング」に関する質問については、SQL Serverは、定義された最小メモリ量にトリミングを戻そうとします。知っておくべきいくつかの良いこと:

  1. 最小値を下げたり上げたりする必要がある深刻な問題がある場合は、(再起動を必要とせずに)設定を再構成することができ、かなり短い順序で設定が上下します。
  2. OSのオーバーヘッドが原因で、SQL Serverの実際のメモリ使用量が、私のメモリで十分であれば、最小値より少し高くなる可能性があります。

ほとんどのSQL Serverでは、おそらく50%が適切な最小メモリ設定であることに同意します。

1
RLF

ドキュメント によると、SQL Serverは最小値を下回るメモリを解放できません。

最小サーバーメモリを使用して、SQL Serverのインスタンスのバッファプールで使用可能なメモリの最小量を保証します。 SQL Serverは、起動時に最小サーバーメモリで指定された量のメモリをすぐには割り当てません。ただし、クライアントの負荷が原因でメモリ使用量がこの値に達した後は、最小サーバーメモリの値が減少しない限り、SQL Serverは割り当てられたバッファープールからメモリを解放できません。

最小メモリの推奨事項としては、50%が適切なベースですが、サーバーとサーバーの負荷に依存します。

0
benjarrell

SQL Server 2019 CTP3.1以降、セットアップ中にMINおよびMAXメモリをセットアップし、Recommended values

CTP 3.1 June 2019

セットアップ時に最小および最大サーバーメモリ値を設定します

セットアップ中に、サーバーのメモリ値を設定できます。デフォルト値を使用して計算された推奨値を使用するか、推奨オプションを選択したら手動で独自の値を指定してください Server Memory Server Configurationオプション

0
lad2025

最小値の設定は、アクティビティが発生したときにSQL SERVERが毎日より多くのメモリを要求する必要がないように、高メモリを必要とする負荷/アクティビティが毎日発生することがわかっている場合にのみ設定します。 (ただし、最初に要求する必要があります)。

「Windowsがメモリ不足の通知をSQLに送信した場合、SQLサーバーはすべてのプールをトリムし、メモリ使用量を最大48 GBに維持しようとしますか?」

SQLサーバーは、すでにそれを取得している場合、最小値を下回ることはありません。 (現在使用中かどうかに関係なく)、これはMIN値セットが適切でなかったことを示しています。

「ウィンドウズによるアグレッシブなワーキングセットトリミングの場合-SQLサーバーのメモリ使用量を48 GBのままにして、SQLのメモリ使用量の「フロア」を設定しますか?」よくわかりませんしかし、私の推測では、SQLサーバーに取得/コミットされたメモリの再割り当てを強制することはできません。これまでのところ、SQLサーバーに未使用のメモリをウィンドウに解放するように指示する方法を見つけていません。 SQLサーバーの不適切なMAX値のためにサーバーが応答しなくなり、サーバー自体が動作するために残されたものがないことを確認しました。

「最小サーバーメモリに関する推奨事項はありますか?」以前に述べたように、サーバーが特定の量のメモリを必要とする頻度がわからない場合は、デフォルトよりも高い値を設定する必要はありません。

0
Anup Shah