SQL Serverの複数のインスタンスのメモリを構成するにはどうすればよいですか?


9

同じ仮想サーバー上で実行される一連のSQL Serverインスタンス(2008 R2)があります。各インスタンスは、開発サイクル(開発/テスト/ステージなど)のステージを表します。すべてのインスタンスは常にオンラインである必要がありますが、リリースライフサイクルのどこにいるかによって、負荷は一度に1つのインスタンスに分離される傾向があります。

SQL Serverは、最大値として設定したメモリ量を取得して保持するようです。インスタンスがメモリ消費について「スマート」になるように構成して、必要なときに互いがメモリを取得するのをブロックしないようにする方法があるかどうかを知りたい。


すべてのインスタンスをいつでもオンラインにする必要があり、最大メモリを設定した場合、SQL Serverはそれを解放しません。..負荷が一度に1つのインスタンスに分離されると言う場合、それは他のインスタンスでアクティビティがないことを意味しますか?また、仮想で実行しているインスタンスの数と仮想のCPU /メモリ構成は何ですか?
Kin Shah

3
同じノード上の複数のインスタンスにつながるフェイルオーバーが発生した場合にメモリを調整する必要があるマルチインスタンスクラスターについて、これについて書きました。ここでも同様のアプローチを使用できますが、代わりに現在のニーズに基づいてメモリを再構成するストアドプロシージャをオンデマンドで実行します。単純にそれぞれを最大メモリに固定する(そして必要に応じて手動で調整する)場合を除いて、これを自動的に行うように各インスタンスを設定することはできません。
アーロンバートランド

回答:


7

SQL Serverは、メモリを大量に使用します(かなりの量)。すべてのインスタンスに制限を設定することをお勧めします。デフォルト設定は2147483647MBです。

使用状況や独自の状況に応じて、設定は異なる場合がありますが、通常、RAMの容量に応じて、最大サーバーメモリを75〜90%に設定することをお勧めします。グレンベリーは、ここ数年前に良い兆候を共有しています。

サーバーに複数のアクティブなインスタンスがある場合、それらの間でリソースを共有する必要がある場合があります。たとえば、32GBのRAMが3つのインスタンスにある場合、各インスタンスに約9500MBを割り当てる必要があります。一度に1つのインスタンスのみを使用している場合、他のインスタンスは使用しているRAMを解放しません。サービスを停止することにより、RAMを解放できます。

他のアプリケーション/サービスを実行している場合、それらに対応するためにメモリの量を調整する必要がある場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.